草庐IT

Private_dirty

全部标签

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# - C# 中的私有(private)内部类 - 为什么不经常使用它们?

我对C#比较陌生,每次开始做C#项目时(我只用C#做过几近成熟的项目)我想知道为什么没有内部类?也许我不明白他们的目标。对我来说,内部类——至少是私有(private)内部类——看起来很像Pascal/Modula-2/Ada中的“内部程序”:它们允许将主类分解成更小的部分,以便于理解。示例:这是大多数时候看到的内容:publicclassClassA{publicMethodA(){myObjectClassB.DoSomething();//ClassBisonlyusedbyClassA}}publicclassClassB{publicDoSomething(){}}由于Cla

c# - 了解私有(private)二传手

我不明白拥有以C#2开头的私有(private)setter的必要性。对我来说有一个setter方法就是让用户在那个类中设置一些变量。这样做时,我们不会将变量直接暴露给用户。相反,我们让他们通过这个公共(public)setter方法来完成。这对我来说是使用“封装”。有一些论点声称私有(private)setter可以让您应用封装。我不是通过使用公共(public)setter方法来使用封装吗?为什么我们需要私有(private)二传手?不可变类和具有私有(private)setter的类有什么区别? 最佳答案 逻辑上。私有(pri

c# - 如何为构造函数自定义 Visual Studio 的私有(private)字段生成快捷方式?

VS2017(可能还有更早的版本)为我提供了这个方便的小构造函数快捷方式来生成privatereadonly字段并分配它。截图:这最终会生成一个名为userService的私有(private)成员,然后将其分配给:this.userService=userService;这违背了我使用的代码风格,即用前缀_命名所有私有(private)成员,导致赋值应该如下所示:_userService=userService;我怎样才能使VS通过其代码生成快捷方式遵守此代码样式规则? 最佳答案 这也可以直接在VisualStudio中实现。只需

c# - 我可以发布私有(private) NuGet 包吗?

我有一个我制作的组件,它非常适合我公司的团队。我希望能够使用NuGet使这个程序集可用于我的团队和我公司的类似团队正在从事的其他项目。但是,程序集并不是我想与世界分享的真正代码。我知道使用Maven,您可以从本地存储库创建本地存储库和源包。NuGet是否支持类似的功能?NuGet有没有办法指定本地存储库或拥有私有(private)包? 最佳答案 是的!您可以托管自己的NuGet服务器!最简单的方法是在您的服务器上创建一个共享文件夹并将其引用为您的Nuget服务器。您可以在以下位置找到有关如何执行此操作的更多信息:HostingYou