- В принципе, вы не правильно объявили.
- тогда в вашей функции (line3), так как
n
уже объявлено, вы не можете объявить его снова как int.
- ваша функция всегда будет возвращать 46, потому что вы переназначаете ее в строке 3 на 46
- ваша функция вернет 46, но установит n на 47, я не уверен, что это то, что вам нужно.
Если вы хотите просто увеличить на 1, вы можете запустить этот код где угодно:
n++; // increment n by 1
n += 46; // increment n by 46
Если вам действительно нужна функция, я сомневаюсь, что вам нужны оба, out int n
и return n
этот код будет увеличивать вашу переменную n:
private static void Main()
{
int n = 46;
// some code here
IncrementByOne(ref n);
Console.WriteLine("N = " + n);
}
/// this function will increment n by 1
private static void IncrementByOne(ref int n) { n++; }
Этот код вернет увеличенное целое число
private static void Main ()
{
int n = 46;
// some code here
n = IncrementByOne(n);
Console.WriteLine("N = " + n);
}
/// this function will return an integer that is incremented by 1
private static int IncrementByOne(int n)
{
n++; //increment n by one
return n;
}
Если вы хотите объявить n в своей функции, вы должны объявить это раньше
static void Main(string[] args)
{
int n = 46; // you have to set n before incrementing
// some code here
IncrementByOne(out n);
Console.WriteLine("N = " + n);
}
/// this function will always set variable n to 47
private static void IncrementBy47(out int n)
{
n = 46; // assign n to 46
n++; // increase n by one
}
Это также можно сократить как:
/// This function will always set variable n to 47
private static void SetVarTo47(out int n) { n = 47; }
Надеюсь, это поможет понять, что они делают.