草庐IT

private_struct

全部标签

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# - 如何根据定义使 'struct' 可空?

structAccountInfo{StringUsername;StringPassword;}现在如果我想要一个Nullable例如我应该写:NullablemyAccount=null;但我想制作structNullable从本质上讲,它可以像这样使用(不使用Nullable):AccountInfomyAccount=null; 最佳答案 你不能。结构被视为值类型,根据定义不能为空。使其成为nullable的最简单方法是使其成为引用类型。您需要问自己的答案是“为什么这是一个结构?”除非你能想到一个真正可靠的理由,否则不要,并

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

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

c# - List<T> 只读,带有私有(private)集

我怎样才能公开List以便它是只读的,但可以私下设置?这行不通:publicListmyList{readonlyget;privateset;}即使你这样做:publicListmyList{get;privateset;}您仍然可以这样做:myList.Add("TEST");//Thisshouldnotbeallowed我想你可以:publicListmyList{get{returnotherList;}}privateListotherList{get;set;} 最佳答案 我认为你在混淆概念。publicListmyL

没有私有(private)变量的 C# 自定义 getter/setter

最近学了c#,所以在学写属性的时候,被教成这样:publicstringName{get;set;}汽车属性很棒!但现在我正在尝试做一些更复杂的事情,所以我需要编写一对自定义访问器。privatestring_Name;publicstringName{get{return_Name;}set{_Name=value}}我知道编译器在使用autos时会在其阴暗的深处创建一个私有(private)实例变量,但我被宠坏了,不想让那个私有(private)变量看起来毫无意义。有没有办法在没有私有(private)变量的情况下使用自定义访问器? 最佳答案

C# - 是否可以隐藏公开继承的方法(例如,对派生类私有(private))

假设我有一个带有公共(public)方法A和B的BaseClass,并且我通过继承创建了DerivedClass。例如publicDerivedClass:BaseClass{}现在我想在DerivedClass中开发一个使用A和B的方法C。有没有一种方法可以覆盖方法A和B,使其在DerivedClass中成为私有(private)的,以便只有方法C暴露给想要使用我的DerivedClass的人? 最佳答案 不可能,为什么?在C#中,如果您继承公共(public)方法,则必须将它们公开。否则,他们首先希望您不要派生自该类。您将不得不

c# - 私有(private)成员是否在 C# 中继承?

刚刚看到一个教程说:ClassDog{privatestringName;}ClassSuperDog:Dog{privatestringMood;}然后有一个UML显示SuperDog也将继承Name。我试过了,但对我来说似乎只有公共(public)成员是继承的。至少我无法访问Name,除非它被声明为公共(public)。 最佳答案 Aderivedclasshasaccesstothepublic,protected,internal,andprotectedinternalmembersofabaseclass.Eventho

c# - (C# 7.2) "private protected"修饰符的用例是什么?

C#7.2introducestheprivateprotectedmodifier.我一直保护对具有属性的字段的访问,允许通过Get/Set方法进行访问,因为我通常不希望我的对象的内部状态被我自己的类以外的任何东西修改。我想了解为什么C#语言团队要添加此功能。在谷歌上进行广泛搜索、阅读和观看“最新消息”媒体(我看过pressrelease、details和videobyMadsTorgerson)后,我仍然一无所知。对我来说,这似乎允许开发人员打破Liskov替换原则,但这可能是因为我不明白为什么现在存在此功能。我知道它是如何使用的,只是不知道为什么-请有人提供一个真实世界的使用示例

c# - Json.Net 中的私有(private)二传手

我知道有一个属性可以处理私有(private)setter,但我有点希望将此行为作为默认行为,有没有办法实现这一点?除了调整来源。如果有这样的设置就好了。 最佳答案 我来这里是为了寻找使Json.NET在反序列化时填充只读属性的实际属性,这就是[JsonProperty],例如:[JsonProperty]publicGuid?ClientId{get;privateset;}替代方案只需提供一个具有与您的属性匹配的参数的构造函数:publicclassFoo{publicstringBar{get;}publicFoo(strin

c# - 返回两个值,元组 vs 'out' vs 'struct'

考虑一个返回两个值的函数。我们可以这样写://Usingout:stringMyFunction(stringinput,outintcount)//UsingTupleclass:TupleMyFunction(stringinput)//Usingstruct:MyStructMyFunction(stringinput)哪个是最佳实践,为什么? 最佳答案 它们各有优缺点。Out参数快速且便宜,但需要您传入一个变量,并依赖于变异。在LINQ中正确使用输出参数几乎是不可能的。元组会产生收集压力1并且不会self记录。“Item1”