有没有办法做这样的事情:
class blabla
{
string[] a;
string ciao(int row, string text)
{
set { a[row] = text;}
get { return a[row;}
}
}
Run Code Online (Sandbox Code Playgroud)
(是的,我知道我最终可以制作自己的方法)
您可以做的最好是使用index属性this:
class Foo
{
string[] row;
string this[int row]
{
set {a[row] = value;}
get {return a[row];}
}
}
Run Code Online (Sandbox Code Playgroud)
然后,您使用[]运算符访问它:
Foo f;
f[1] = "hello";
Run Code Online (Sandbox Code Playgroud)
拥有以这种方式运行的命名属性是不可能的.
另外,从.NET开始,没有理由不能对属性进行参数化.如果你看一下PropertyInfo类,你会发现一个属性只是一个get方法和一个set方法,两者都可以带参数.实际上,这是索引属性的工作方式(以及属性).只是C#没有通过语言公开这个功能.
| 归档时间: |
|
| 查看次数: |
119 次 |
| 最近记录: |