Resharper喜欢指出每个asp.net页面可以静态化的多个函数.如果我让它们静止,对我有帮助吗?我应该将它们设置为静态并将它们移动到实用程序类吗?
仍然习惯了Entity框架,但我已经看到了类似下面的代码,他们在Entity中拥有id的私有setter.
public int Id { get; private set; }
public string FirstName { get; set; }
public string LastName { get; set; }
Run Code Online (Sandbox Code Playgroud)
为什么有些人会有私人制定者.这个Id字段无论如何都是在数据库中自动生成的,这是因为它设置为私有?
另外,为什么我们需要私有构造函数和公共构造函数,如下所示?
private Emp() { }
public Emp(string name, string lastname)
{
FirstName = firstname;
LastName = lastname;
}
Run Code Online (Sandbox Code Playgroud) 虽然仍在努力阅读"你不懂JS",但我开始有了好主意(喜欢这个系列).我想我已经掌握了原型,但我遇到了下面的代码.
var myObject = {
a:2
};
Object.getOwnPropertyDescriptor(myObject, "a");
Run Code Online (Sandbox Code Playgroud)
虽然我完全理解输出及其含义,但我试图使用我对原型的理解(或缺乏),并希望在下面做.
myObject.getOwnPropertyDescriptor
Run Code Online (Sandbox Code Playgroud)
我认为它会向上遍历原型链最多的对象原型和获取方法,但事实证明,对象的原型没有这个(假设这不是对象的原型的一部分,我找了DOC,至少我不要把它看作原型的一部分,它说它是一种方法).因此,我假设这只是Object.getOwnPropertyDescriptor,而不是Object.prototype.getOwnPropertyDescriptor.
我是否正确理解了这一点,为什么Object的方法不适用于所有原型?
可能重复:
我什么时候应该在课堂上使用静态方法,有什么好处?
我现在正在使用PHP.
我正在研究两组函数.
我有一个由日期处理函数组成的类.
在这个类中,我不需要属性,因为每个函数/方法或多或少都是一个实用程序.因此,我使我的班级功能全部静止.
我在这里有几个问题.
1)使用静态方法有什么好处?据我所知,由于没有Object,因此处理开销较低.我也听说这可以忽略不计(视情况而定).
2)除了公用事业之外,还有哪些其他类型的功能/方法是"静态"的良好候选者?
谢谢
c# ×2
.net ×1
constructor ×1
javascript ×1
php ×1
refactoring ×1
resharper ×1
setter ×1
static ×1