2

asp.netを初めて使用し、オブジェクトを作成しようとしていますが、構文エラーがあります

public class pair
{

    private string key;
    private string value;

    public pair(string key, string value)
    {
        this.key = this.setKey(key);
        this.value = this.setValue(value);
    }

    private void setKey (string key) {
        this.key = key;
    }

    public string getKey()
    {
        return this.key;
    }

    private void setValue(string value)
    {
        this.value = value;
    }

    public string getValue()
    {
        return this.value;
    }

}

これらの2行

this.key = this.setKey(key);
this.value = this.setValue(value);

何か問題があります、誰かが問題を知っていますか?

4

4 に答える 4

12

ここに2つのプロパティが必要なだけか、

public class Pair
{
    public string Key { get; private set; }
    public string Value { get; private set; }

    public Pair(string key, string value)
    {
        this.Key= key;
        this.Value = value;
    }   
}
于 2012-10-17T06:11:00.183 に答える
3

独自のクラスを作成する必要はありません。.NETはこれに似た2つの組み込みクラスをサポートしています。だからあなたは代わりに使うKeyValuePair<string, string>ことができますTuple<string, string>

于 2012-10-17T06:13:53.320 に答える
1

誰もが修正を提案しましたが、実際の質問には誰も答えていません。問題は、割り当ての右側がvoidメソッドであるということですが、割り当てターゲットと同じタイプ、またはそのタイプに暗黙的に変換可能なタイプである必要があります。が封印されているためstring、この場合、式の右側は文字列式である必要があります。

string M1() { return "Something"; }
object M2() { return new object(); }
void M3() { }

string s = "Something"; //legal; right side's type is string
string t = M1(); //legal; right side's type is string
string u = M2(); //compiler error; right side's type is object
string v = M2().ToString(); //legal; right side's type is string
string w = (string)M2(); //compiles, but fails at runtime; right side's type is string
string x = M3(); //compiler error; right side's type is void
于 2012-10-17T06:29:47.460 に答える
0

メソッドを使用する必要はなく、コンストラクター引数のみを使用します。

public class pair
{

    private string key;
    private string value;

    public pair(string key, string value)
    {
        this.key = key;
        this.value = value;
    }

    private string Key 
    {
        get { return key; }
        set { key = value; }
    }

    public string Value
    {
        get { return this.value; }
        set { this.value = value; }
    }
}
于 2012-10-17T06:11:26.437 に答える