簡體   English   中英

我們可以將參數傳遞給C#屬性嗎?

[英]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_xxxset_xxx ,可以在其中對調用約定進行優化。 因此,屬性設計對於您正在執行的操作並不理想。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM