在C#中使用privateconst变量或privatestaticreadonly变量有区别吗(除了必须分配const一个编译时表达式)?因为它们都是私有(private)的,所以没有与其他库的链接。那会有什么不同吗?例如,它可以产生性能差异吗?实习字符串?有没有类似的? 最佳答案 好吧,您可以在属性中使用常量,因为它们作为编译时存在。您无法预测静态只读变量的值,因为.cctor可以从配置等初始化它。在使用方面,常量被嵌入到调用代码中。这意味着,如果您重新编译一个库dll来更改一个public常量,但不更改消费者,那么消费者仍将使
在C#中使用privateconst变量或privatestaticreadonly变量有区别吗(除了必须分配const一个编译时表达式)?因为它们都是私有(private)的,所以没有与其他库的链接。那会有什么不同吗?例如,它可以产生性能差异吗?实习字符串?有没有类似的? 最佳答案 好吧,您可以在属性中使用常量,因为它们作为编译时存在。您无法预测静态只读变量的值,因为.cctor可以从配置等初始化它。在使用方面,常量被嵌入到调用代码中。这意味着,如果您重新编译一个库dll来更改一个public常量,但不更改消费者,那么消费者仍将使
我绝对记得在某个地方看到过使用反射或其他方式这样做的例子。它与SqlParameterCollection有关,用户无法创建(如果我没记错的话)。不幸的是再也找不到了。有人可以在这里分享这个技巧吗?并不是说我认为这是一种有效的开发方法,我只是对这样做的可能性非常感兴趣。 最佳答案 您可以使用Activator.CreateInstance的重载之一来执行此操作:Activator.CreateInstance(Typetype,boolnonPublic)为nonPublic参数使用true。因为true匹配公共(public)或非
我绝对记得在某个地方看到过使用反射或其他方式这样做的例子。它与SqlParameterCollection有关,用户无法创建(如果我没记错的话)。不幸的是再也找不到了。有人可以在这里分享这个技巧吗?并不是说我认为这是一种有效的开发方法,我只是对这样做的可能性非常感兴趣。 最佳答案 您可以使用Activator.CreateInstance的重载之一来执行此操作:Activator.CreateInstance(Typetype,boolnonPublic)为nonPublic参数使用true。因为true匹配公共(public)或非
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭3年前。Improvethisquestion我刚刚发现,对私有(private)方法使用UpperFirstLetterPascalCase()似乎是一种常见的模式。我自己发现这完全不符合私有(private)实例字段和变量的命名规则,而且我也发现很难读取/调试。我想问一下,为什么对方法使用第一个大写字母比第一个小写字母doThis()更好?出于好奇...
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭3年前。Improvethisquestion我刚刚发现,对私有(private)方法使用UpperFirstLetterPascalCase()似乎是一种常见的模式。我自己发现这完全不符合私有(private)实例字段和变量的命名规则,而且我也发现很难读取/调试。我想问一下,为什么对方法使用第一个大写字母比第一个小写字母doThis()更好?出于好奇...
既然字段是隐式私有(private)的,为什么在书籍、文章等中经常使用显式声明? 最佳答案 因为默认访问级别因语言而异,而且许多人使用不止一种语言进行编程。很容易变得困惑,无论是作为作者还是作为稍后阅读代码的人,因此显式比隐式更好处理。 关于c#-为什么明确写"private"?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4113651/
既然字段是隐式私有(private)的,为什么在书籍、文章等中经常使用显式声明? 最佳答案 因为默认访问级别因语言而异,而且许多人使用不止一种语言进行编程。很容易变得困惑,无论是作为作者还是作为稍后阅读代码的人,因此显式比隐式更好处理。 关于c#-为什么明确写"private"?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4113651/
如果我有一个没有指定其可访问性级别的方法,它会默认为私有(private)吗?voidItem_PropertyChanged(objectsender,System.ComponentModel.PropertyChangedEventArgse){thrownewNotImplementedException();}上面的方法是私有(private)的吗? 最佳答案 是的。如果您不定义任何修饰符,则一般规则是“使用可以在此处应用的最受限制的修饰符”,因此对于方法是私有(private)的,对于顶级类是内部的,等等。
如果我有一个没有指定其可访问性级别的方法,它会默认为私有(private)吗?voidItem_PropertyChanged(objectsender,System.ComponentModel.PropertyChangedEventArgse){thrownewNotImplementedException();}上面的方法是私有(private)的吗? 最佳答案 是的。如果您不定义任何修饰符,则一般规则是“使用可以在此处应用的最受限制的修饰符”,因此对于方法是私有(private)的,对于顶级类是内部的,等等。