类成员访问的点表示法

Ale*_*tts 3 .net c# winforms

我有以下代码:

public class Random
{
    public string Name { get; set; }

    public bool IsRunning()
    {
        var running = true;

        return running;
    }
}

public class Main
{
    Random newObject = new Random();

    newObject.Name = "Johnny";

    var result = newObject.IsRunning();
}
Run Code Online (Sandbox Code Playgroud)

它们都存在于同一名称空间中的同一.cs文件中.每当我创建一个新项目之前,我从来没有设置任何东西来使用点符号来访问成员属性或方法,但这就是说我不能使用newObject.任何事情,以及"var"对关键字无效.这是我通常使用的Windows窗体应用程序,但我在这里画空白为什么我不能做我通常在其他程序中多次使用的所有这些东西.我在这里错过了什么?

Jon*_*eet 9

您正在尝试直接在类声明中编写代码.类声明只能直接包含成员声明.它不能包含任何语句,例如newObject.Name = "Johnny"也不能使用var,这只适用于局部变量.如果你把代码放在一个方法中,它应该是绝对正常的.例如:

public class Main
{
    public void DoSomething()
    {
        Random newObject = new Random();
        newObject.Name = "Johnny";
        var result = newObject.IsRunning();
    }
}
Run Code Online (Sandbox Code Playgroud)

顺便Random说一句,我强烈建议不要命名自己的类,因为它也是System命名空间中类的名称.

  • 你的答案总是包含一些我有**支持它的东西.例如,在这个答案中 - *命名你自己的类Random,因为它也是System命名空间中类的名称.* (2认同)

Mic*_*haC 5

您不能在类成员定义中使用var或赋值给其他对象.

您编入的代码public class Main不在方法中.我想你要做的是写一个控制台应用程序,这需要一个

public static void Main()
Run Code Online (Sandbox Code Playgroud)

方法

所以把你的班级改为例如

class Program
{
    static void Main(string[] args)
    {
        Random newObject = new Random();

        newObject.Name = "Johnny";

        var result = newObject.IsRunning();
    }
}
Run Code Online (Sandbox Code Playgroud)