我在我的類中使用索引器來更容易地搜索列表。但是,我希望能夠返回一個布爾和一個int。不是在同一時間,而是確定它是一個布爾型還是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解析並不解析字典 –
那麼,如何區分何時應該返回布爾,何時int?你在這兩種情況下都傳遞相同的字符串參數。 – Evk