[英]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.