-1

这似乎是一个非常简单的错误,但我无法解决它。我在 User.cs 中创建了一个名为 User 的类,当我在另一个 .cs 文件中实例化它时,它会执行此操作,但我无法更改其属性或访问其属性。

User user = new User();

我像这样创建了一个新实例,但后来我无法访问。例如:

user.name

User类的内容如下:

public class User
{
    public static string name;
    public static int age;
    public static int height;
    public static int weight;
}

是什么原因,我该如何解决?谢谢

4

5 回答 5

2

您已经创建了一个静态对象,不要实例化类来使用它,只需执行

User.name

或者删除 static 关键字。

静态这个词意味着你不需要创建一个新的类来访问一些东西,所以对于一个类来说

public Class { 
    public static object myAttribute;
}

Class.myAttribute

但是如果你不使用静态关键字

public Class { 
    public object myAttribute;
}

Class myClass = new Class();
myClass.myAttribute;

当您的值不依赖于同一类中的任何其他变量时,您希望使用静态值。当它们确实依赖于同一类中的变量(或变量操作)时,请使用非静态。

于 2012-07-21T10:54:07.530 回答
2

static从字段中删除关键字

于 2012-07-21T10:54:19.377 回答
1

name公众会员吗?将其设置为公共或创建公共属性以访问它...

public string Name { get { return name; } }

编辑:作为name一个静态成员,你不能写myUser.name. 是User.name。我认为你应该删除static(并学习一些基础......)。

构建期间出现的错误消息是什么?应该足够清楚。

于 2012-07-21T10:50:46.633 回答
0

您必须在用户类中将 name 声明为 public。例如:

public string name { get; set; }
于 2012-07-21T10:50:51.170 回答
0

您不能从类的实例访问静态字段。您可以不将字段声明为静态:

public class User
{
    public string name;
    public int age;
    public int height;
    public int weight; 
...

或者您可以静态访问该类:

User.name
于 2012-07-21T10:57:34.287 回答