我在函数的前面放什么修饰符(我尝试过使用public,private甚至protected)都没关系,我总是收到一个错误,同样的错误。仅在删除修饰符且函数“ Array()”不包含任何修饰符后,代码才干净。有人可以看一下我的代码并向我解释发生了什么吗,我是c#的新手,还是寻求帮助的新手,所以请原谅我迄今为止犯的所有错误。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
public void Array()//nu se pune in interiorul functiei void Main (), deoarece va forma nesting, si ne va da eroare la compilare.
{
int[] intArray;
intArray = new int[3];//all values will be 3
var doubleArray = new[] { 34.23, 10.2, 23.2 };
//var arrayElement = doubleArray[0];
//doubleArray[1] = 5.55;
for (var i = 0; i < intArray.Length; i++)
{
Console.WriteLine(intArray[i]);
}
}
}
}
}
我已经在下面将代码及其图像发布了。
答案 0 :(得分:5)
您正在创建nested method
(也称为本地函数)。
嵌套方法可能没有访问修饰符。它们只能通过此方法访问。
以供参考:https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/local-functions
答案 1 :(得分:3)
您有一个嵌套函数,在C#中,这些函数称为local functions,没有作用域。因此您需要删除访问修饰符,例如:
public static void PrintHelloWorld()
{
string GetName()
{
return "world";
}
Console.WriteLine($"Hello {GetName()}");
}
答案 2 :(得分:0)
您正在将私有函数放入静态函数中。删除私人。
答案 3 :(得分:-2)
将该功能移出Main功能。另外,您应该将其标记为静态,然后按预期使用它。如果您不想使用嵌套方法,因为它已经被回答了。