![]() |
1
7
在C或.NET内部没有这样做的工具,但是如果您做了很多这样的工作,那么可能值得通过以下方式来研究面向方面的编程 postsharp . 基本上,它将允许您定义一个属性,使额外的代码在编译时被注入。您键入的代码类似于:
在编译时,PostSharp将用在新的LocalizedPropertyAttribute类中定义的模板替换该属性。 |
![]() |
2
3
你做不到 相当地 正如您所描述的那样简洁,但是您可以减少setter的复杂性和冗余性。
|
![]() |
3
1
我不知道你到底想实现什么,但你可能把事情搞得太复杂了。这还不够吗?
其中,resources是为本地化资源生成的类(从resx文件)。我有一种感觉,你试图建立自己的本地化框架,因为你还不知道.NET already has infrastructure for that . |
![]() |
4
0
不,没有这样的方法。它将会是 possible in php 但不是C。 在这种情况下,您应该改变您的方法,使之远离属性。 UPD: 也许你可以对每一处房产都使用类似的东西(除了明显的弱点):
|
![]() |
5
0
您可以实现一个索引属性,根据您的偏好为您提供以下两种语法选择之一。代码基本上是一个接受特定命名资源并返回正确内容的函数。
|
![]() |
6
0
通过将getter和setter逻辑封装在基类中,然后从创建的任何新属性中简单地调用这些方法(简单地充当这些方法的瘦包装器),可以使您的生活更轻松。下面是一个例子:
…这样,属性中的逻辑非常少,并且您重复的代码更少。这假设了以下类(我戏称之为泛型类):
|
![]() |
7
-1
这没有道理。 以您当前拥有的方式使用属性,您只需编写:
如果你改变了你想要的方式,你也必须指定参数。
你所能做的就是做一个“属性包”模拟器
您可以这样访问:
|
![]() |
Vedant · 如何解决python啦啦队长问题?[已关闭] 2 年前 |
![]() |
cobby · 在战略模式中使用工厂模式? 3 年前 |
![]() |
Nobody · Java中带while循环的三角形模式 3 年前 |
![]() |
Eduard Stefanescu · 如何在层之间传输异常? 7 年前 |
![]() |
D. Schreier Talha Noyon · 对于目录中的每个类 7 年前 |
![]() |
Tanvi Jaywant · 如何重载类 7 年前 |