プロパティのみを含む方法でそれを行うことはできません。理論的にはセッターを作成できますが、ゲッターの場合は、取得するキーを指定する必要があります。プロパティはパラメータを受け入れないため、これは不可能です。あなたが望むことを達成するための自然な方法は、メソッドを使用することです:
private Dictionary<string, string> users = new Dictionary<string, string>();
public void Set(string key, string value)
{
if (users.ContainsKey(key))
{
users[key] = value;
}
else
{
users.Add(key, value);
}
}
public string Get(string key)
{
string result = null;
if (users.ContainsKey(key))
{
result = users[key];
}
return result;
}
あるいは、他の人がすでに言っているように、インデクサーを使用することもできますが、私はいつもそれらが少し面倒だと思っています。しかし、それは個人的な好みの問題だと思います。
そして、完全を期すために、これはセッターがどのように見えるかを示していますが、そのようなプロパティを持つことは非常に珍しく、直感に反します。
public KeyValuePair<string, string> Users
{
set
{
Set(value.Key, value.Value);
}
}
内部的にはSet
、前のスニペットのメソッドを使用します。