草庐IT

publication

全部标签

c# - 推荐哪个: "static public" or "public static"

如果您有一个static和public的类成员。你会写staticpublic还是publicstatic?我知道他们是一样的。但是是否有一些关于编写此内容的建议/最佳实践? 最佳答案 “publicstatic”更为常见,因此您可能希望使用它只是为了提高从未偶然发现“staticpublic”的程序员的可读性。 关于c#-推荐哪个:"staticpublic"or"publicstatic",我们在StackOverflow上找到一个类似的问题: https

C# 公共(public)变量在类内可写但在类外只读

我有一个.NetC#类,我需要在其中公开一个变量。我需要在一个方法中(而不是在构造函数中)初始化这个变量。但是,我不希望该变量可以被其他类修改。这可能吗? 最佳答案 不要使用字段-使用属性:classFoo{publicstringBar{get;privateset;}}在此示例中,Foo.Bar在任何地方都是可读的,并且只能由Foo本身的成员写入。附带说明一下,此示例使用了版本3中引入的称为自动实现的属性的C#功能。这是语法糖,编译器会将其转换为具有私有(private)支持字段的常规属性,如下所示:classFoo{[Comp

c# - 为什么公共(public)领域比属性更快?

我在XNA中四处寻找,发现其中的Vector3类使用公共(public)字段而不是属性。我尝试了一个快速基准测试,发现对于struct来说,差异非常显着(将两个向量加在一起​​1亿次需要2.0秒的属性和1.4秒的字段)。对于引用类型,差异似乎没有那么大,但确实存在。那是为什么呢?我知道一个属性被编译成get_X和set_X方法,这会产生方法调用开销。但是,这些简单的getter/setter不是总是由JIT内联吗?我知道您不能保证JIT决定做什么,但肯定这在概率列表中相当高?还有什么可以在机器级别将公共(public)字段与属性分开?还有一件事我一直在想:自动实现的属性(publici

c# - 为什么 Visual Studio 默认不创建公共(public)类?

这个问题在这里已经有了答案:HowdoyoudefaultanewclasstopublicwhencreatingitinVisualStudio?(9个回答)关闭9年前。在VisualStudio中,当你添加一个新类时,它总是在创建时没有修饰符,这使得类成为内部类。classMyClass{}我希望我的类默认创建为公共(public)类。为什么默认是内部的?你更喜欢什么?

c# - 内部类中的公共(public)构造函数和内部构造函数有什么区别?

我有一个内部类,内部构造函数不允许它在泛型集合中使用,所以我将它更改为public。如果您在内部类中有一个公共(public)构造函数,那么可访问性是什么?与拥有一个内部构造函数有什么不同? 最佳答案 两者本质上是一样的。我看到的用于区分它们的一个论点是,使您的构造函数internal确保该类型只会由当前程序集中的类型实例化,即使后来决定该类型本身应该是public而不是internal。换句话说,您可以决定更改类型的可见性,而不解除对其实例化的限制。使构造函数public具有相反的效果(很明显),如果您希望它可以在任何可见的地方实

c# - C# 编译器将 lambda 表达式视为公共(public)方法还是私有(private)方法?

在内部,编译器应该将lambda表达式转换为方法。在那种情况下,这些方法是私有(private)的还是公共(public)的(或其他),是否有可能改变它? 最佳答案 这取决于。在当前版本的VisualStudio中,实现lambda的方法从不公开,但也不总是私有(private)的。测试某些版本的lambda的简单程序:publicclassProgram{publicstaticvoidMain(){varprogram=newProgram();Try("A",program.A);Try("B",program.B);Try(

c# - C# 控制台应用程序中的 public static void Main() 和 private static void Main() 有什么区别?

有什么区别publicstaticvoidMain()和privatestaticvoidMain()在C#控制台应用程序中?特别是因为它与Main()方法有关(我了解public和private之间的区别)。 最佳答案 要作为应用程序的起点,Main方法不需要是public。如果您确实决定将其设为public,则它可能会被其他类或程序集调用。通常您不需要这样做,因此您可以将其设为private。将其设为public的一个可能用例是允许自动化测试调用它。 关于c#-C#控制台应用程序中的

c# - 获取公共(public)/外部 IP 地址?

我似乎无法获取或找到有关查找我的路由器公共(public)IP的信息?这是因为它不能以这种方式完成并且必须从网站上获取吗? 最佳答案 使用C#,使用webclient,它很短。publicstaticvoidMain(string[]args){stringexternalIpString=newWebClient().DownloadString("http://icanhazip.com").Replace("\\r\\n","").Replace("\\n","").Trim();varexternalIp=IPAddress

c# - 为什么我的公共(public)属性没有被 XmlSerializer 序列化?

这是一个我挣扎了多年的问题,所以我想我应该在某个地方记录下来。(抱歉提出和回答问题。)(C#.net2.0)我有一个由XmlSerializer序列化的类,我添加了一个新的公共(public)属性,但它没有包含在输出XML中。在我能找到的任何地方的文档中都没有提到它,但是公共(public)属性必须有一个set以及一个get才能被序列化!我猜这是因为它假设如果您要序列化,那么您将希望从同一个文件反序列化,因此只序列化同时具有set和get的属性。 最佳答案 如前所述,大多数属性必须同时具有getter和setter;主要的异常(ex

c# - 对不可变结构使用公共(public)只读字段是否有效?

这是声明不可变结构的正确方法吗?publicstructPair{publicreadonlyintx;publicreadonlyinty;//Constructorandstuff}我想不出为什么这会遇到问题,但我只是想问清楚。在这个例子中,我使用了整数。如果我改用一个类,但那个类也是不可变的,就像这样怎么办?这应该也能正常工作,对吧?publicstructPair{publicreadonly(immutableClass)x;publicreadonly(immutableClass)y;//Constructorandstuff}(另外:我知道使用Properties更通用