-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

ユーザークラスで名前を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 に答える