我们有一个具有getter的类的属性 - 返回值
前:
Public Employee Department
{
get { return GetTheValue("Mid Level") ;}
}
GetTheValue是我们的框架方法,它接受参数值并返回字符串。参数vlaue现在是硬编码的,我们想让它变得动态...我们想要将参数值直接传递给Property。我们可以将参数传递给属性吗?不想把它作为方法,只想把参数传递给属性..我怎么能实现这个呢?
答案 0 :(得分:7)
你可以使用类似属性的indexer ......
- name: copy & unpack the file
unarchive: src=/path/to/file/on/local/host
dest=/path/to/target
copy=yes
- name: copy custom config
copy: src=/path/to/src/file
dest=/path/to/target
- name: Enable service
service: name=foo enabled=yes state=started
但滥用。我只想用一种方法......
public Employee this[string department]
{
get
{
return GetTheValue(department);
}
}
...
var instance = new Whatever();
var employee = instance["Mid Level"]
答案 1 :(得分:3)
您正在做的事情完美地描述了方法的目的。您希望这样做:
public Employee GetDepartment(string value)
{
return GetTheValue(value);
}
因为您要求的是向属性添加参数,而属性只是两个方法的语法糖,get_xxx
和set_xxx
可以对调用约定进行优化。因此,属性被设计为不适合您正在做的事情。