|
|
1
2
是的,“value”的类型由属性的返回类型决定。你到底想实现什么?您是否希望能够将Number或NumberAsString设置为有效值,并从任一属性中获取结果? 如果是这样的话,你需要做这样的事情:
这将允许您执行以下操作:
您不能为采用不同类型的属性设置get和set。您唯一的选择是在内部将其存储为一种类型,然后在get或set(或两者)中执行从一种类型到另一种类型的转换。 |
|
|
2
2
setter中的值的类型就是属性的类型-您不能将字符串传递给int类型的属性,必须首先将其解析为int。 .net中的字符串不能被强制转换为任何其他类型(以perl、awk和许多其他动态语言允许的方式),它们只能被视为字符串或其父类对象。 您可以执行以下操作:
显然,NumberAsString设置器可以抛出Numbersetter不能抛出的FormatException。 我一般不建议这样做,除非你 真正地 需要避免定期将数字转换为字符串并将字符串转换为数字(此时,您可以使设置器在评估链接值时变得懒惰——尽管将异常的语义从字符串的on集更改为int的on get——这可能充其量是令人讨厌的,最坏的情况是一个令人讨厌的错误。 |
|
|
3
0
为什么不直接做呢
我突然想到,你无缘无故地耍花招。 我认为你试图在这里使用一个属性,而一种方法更合适。属性不应该有任何不可预见的副作用,这可以通过对其执行类型转换来实现(如果可能的话)。 |
|
|
4
0
在我看来,在NumberAsString上允许设置器是没有意义的。 为什么不这样呢?:
|