【问题标题】:c# ERROR : The modifier 'private ' is not valid for this item [closed]c#错误:修饰符'private'对此项目无效[关闭]
【发布时间】:2019-08-04 09:18:28
【问题描述】:

无论我在函数前面放什么修饰符(我尝试过公共、私有甚至受保护),我总是收到一个错误,同样的错误。只有在我删除修饰符并且我没有留下函数“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]);
                }
            }

        }



    }
}

我已经把代码和它的图片贴在下面了。

In this image you can see the code

【问题讨论】:

  • 请不要发布代码图片,请将实际代码添加到您的问题中。
  • @Zer0 不,一点也不。
  • @DavidG 我希望我能做到,但我不知道怎么做。当我想粘贴代码时,它只允许 html 、 css 和 javascript 语言。我尝试更改语言,它要求我提供代码位置的 URL 地址,但我的网站上没有我的代码,我不知道我是否可以将它放在一个网站上。
  • 没有什么可以阻止您将代码直接粘贴到窗口中,然后确保按“代码示例”按钮对其进行格式化。
  • @Corina 你不必对所有人说谢谢。只需修复帖子即可。

标签: c# access-modifiers c#-7.0 local-functions


【解决方案1】:

您将私有函数放入静态函数中。删除私有。

【讨论】:

  • 在 C# 7 中被允许的。顺便说一句,我不赞成
  • 好的,我会调整...
  • 不知道你为什么在这里提到静态,它根本不相关。此外,您并没有真正解释为什么删除私有是有帮助的。
  • 我可能应该被枪杀...
  • 我的评论准确地说明了 OP 正在做什么...
【解决方案2】:

您正在创建一个nested method(也称为本地函数)。 嵌套方法可能没有访问修饰符。它们只能在此方法中访问。

供参考:https://docs.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/local-functions

【讨论】:

  • 非常感谢您的回答!
【解决方案3】:

您有一个嵌套函数,在 C# 中这些函数称为 local functions 并且没有范围。所以需要去掉访问修饰符,例如:

public static void PrintHelloWorld()
{
    string GetName()
    {
        return "world";
    }


    Console.WriteLine($"Hello {GetName()}");
}

【讨论】:

  • 非常感谢您的回答!
【解决方案4】:

将函数移出 Main 函数。此外,您应该将其标记为静态,然后按您的意图使用它。这是为了防止您不想要嵌套方法,因为它已经被回答了。

【讨论】:

  • 非常感谢您的回答!
  • 这不是答案
猜你喜欢
  • 2011-07-30
  • 2016-11-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-17
  • 2013-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多