|
|
1
4
这个答案比简单地去掉属性上的setter要宽一点——将它与其余的答案和注释结合起来,并采用有意义的部分。希望最后的一点也会有帮助,也许现在不行。 如果您在模型中使用它进行数据绑定,因此希望将其作为属性公开,那么我会这样做:
生成一个将调用以填充模型的服务:
在控制器中:
我明确地没有包括如何在控制器中实例化图书服务。我的首选方案是在运行时在构造函数中注入它,但这将要求您有一个自定义控制器工厂——一次一步。您可以在默认构造函数中新建它:
在一个理想的世界里,我会这样做:
但是,默认的MVC控制器工厂希望控制器具有一个默认参数,因此使用构造函数注入进行此操作将需要更多的工作。 |
|
|
2
7
不,不可能。要么一切都是明确的,要么整个属性是自动的。无论如何,在这种情况下,设置者似乎没有任何意义…根本不应该有二传手。 另外,我认为你应该把它变成一种方法。这将使调用者更清楚地知道它执行了一个可能很长的计算。在一个属性中执行复杂处理也是违反准则的。 |
|
|
3
3
默认的setter将在编译时创建一个backing变量,其名称如下:
因为它是在编译时创建的,所以在创建之前,不能在代码中引用它,此外,在变量名中不允许使用尖括号(故意)。 出于这个原因,如果不允许在将来的任何时候访问这个值(毕竟这里的getter不是自动getter,它将返回一个entirel的值),那么允许在这个变量中存储某些内容(这本质上就是自动setter所做的)几乎是没有用的。Y不同) 因此,总结一下,如果没有getter,那么(这是从这个支持变量中检索值的唯一方法)就没有必要使用私有setter |
|
|
4
2
如果您想按自己的方式来做,只需执行以下操作:
但正如其他人所说,这是对一个属性的过度杀戮,把它放在方法中,就像
|
|
|
5
0
实际上有一种方法可以做到:
|
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |