[英]Can we pass parameter to C# property?
我們有一個具有getter的類的屬性-返回值
例如:
Public Employee Department
{
get { return GetTheValue("Mid Level") ;}
}
GetTheValue是我們的框架方法,它接受參數值並返回字符串。 現在,參數vlaue已進行了硬編碼,我們希望使之動態。我們希望將該參數值直接傳遞給Property。 我們可以將參數傳遞給屬性嗎? 不想將其作為方法,只希望將參數傳遞給屬性..我怎么能做到這一點?
您可以使用類似於屬性的索引器 ...
public Employee this[string department]
{
get
{
return GetTheValue(department);
}
}
...
var instance = new Whatever();
var employee = instance["Mid Level"]
但這是虐待 。 我會改用一種方法...
public Employee GetDepartment(string department)
{
return GetTheValue(department);
}
您正在做的事情完美地描述了方法的目的。 您正在尋找這樣做:
public Employee GetDepartment(string value)
{
return GetTheValue(value);
}
因為您要的是在屬性中添加參數,而屬性只是兩個方法的語法糖,即get_xxx
和set_xxx
,可以在其中對調用約定進行優化。 因此,屬性設計對於您正在執行的操作並不理想。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.