インデントをクラス内で使用してリストを簡単に検索します。しかし、私はboolとintの両方を返すことができるようにしたい。同時にではなく、それがboolかintかどうかを判断し、それを返します。複数の戻り値の型を持つインデクサ
public class uPermissions
{
private List<uPermission> permissions = new List<uPermission>()
{
new uPermission ("canBuild", false),
new uPermission ("canClaim", false),
new uPermission ("canUnClaim", false),
new uPermission ("canInvite", false),
new uPermission ("canKick", false),
new uPermission ("canSetHome", false)
};
private List<uConstraint> constraints = new List<uConstraint>();
public bool this[string index]
{
get
{
return permissions.Where (p => p.name == index).First().allowed;
}
set
{
permissions.Where (p => p.name == index).First().allowed = value;
}
}
public int this[string index]
{
get
{
return constraints.Where (c => c.name == index).First().count;
}
set
{
constraints.Where (c => c.name == index).First().count = value;
}
}
public bool exists (string permission)
{
var perm = permissions.Where (p => p.name.ToLower() == permission.ToLower()).First();
return (perm != null) ? true : false;
}
public void setAllTrue()
{
foreach (uPermission p in permissions)
{
p.allowed = true;
}
}
public void setAllFalse()
{
foreach (uPermission p in permissions)
{
p.allowed = false;
}
}
}
public class uConstraint
{
public string name;
public int count;
public uConstraint() { }
public uConstraint (string name, int count)
{
this.name = name;
this.count = count;
}
}
public class uPermission
{
public string name;
public bool allowed;
public uPermission() { }
public uPermission (string name, bool allowed)
{
this.name = name;
this.allowed = allowed;
}
}
これは私のコードです。私は検索中にテンプレートについて何かを見ましたが、どのように動作するのか、それとも正しい解決策であるのか分かりません。誰かが何らかの洞察を与えることができれば、それは大いに評価されるだろう。
おそらくあなたは辞書を考えるべきです - それはより速くなります。 –
辞書を使用しますが、これは別のソフトウェアへの拡張であり、xmlを使用してデータを格納しますが、xml解析は辞書を解析しません –
boolを返すときとintを区別するにはどうすればよいでしょうか?どちらの場合も、同じ文字列引数を渡します。 – Evk