草庐IT

safe-publication

全部标签

c# - [ComVisible] 默认和公共(public)类 COM 公开有什么关系?

MSDN有thisarticleabout[ComVisible]attribute.我不太明白设置[ComVisible(true)]时会发生什么。MSDN说Thedefaultistrue,whichindicatesthatthemanagedtypeisvisibletoCOM.Thisattributeisnotneededtomakepublicmanagedassembliesandtypesvisible;theyarevisibletoCOMbydefault.Onlypublictypescanbemadevisible.所以他们说默认情况下公共(public)类型

c# - C# 中抽象类中公共(public)构造函数的效用是什么?

如果抽象类中的公共(public)构造函数只能由其派生类调用,那么它在功能上应该等同于protected构造函数。对吧?在抽象类中声明公共(public)构造函数而不是保护构造函数有什么区别吗?你会用它做什么?为什么编译器不提示? 最佳答案 完全正确。您应该支持protected构造函数。编辑:不,编译器不会提示,但像FxCop(和代码分析)这样的工具会提示。我相信您可以使用抽象类上的公共(public)构造函数执行一些奇怪的反射技巧,但从您只是向其他编写子类的开发人员提供基类功能的角度来看,请坚持使用protected构造函数。

c# - 公共(public)语言运行时无法设置断点

这实际上是这个问题的另一部分。Errorsettingsbreakpointsbutonlyonsomelineswhiledebugging我在vs2010中远程调试CRM2011插件。我是我的源文件之一,除少数地方外,我可以在整个代码中设置断点。当我尝试设置断点时出现此错误“无法设置以下断点:”和“公共(public)语言运行时无法设置断点。”protectedoverridevoidExecutePlugin(){SetStateResponseresponse=newSetStateResponse();//Breakpointworks//Messageswitchswitc

c# - 谁处置 IDisposable 公共(public)属性(property)?

如果我有一个实现了IDisposable的SomeDisposableObject类:classSomeDisposableObject:IDisposable{publicvoidDispose(){//Dosomeimportantdisposalwork.}}我还有另一个名为AContainer的类,它有一个SomeDisposableObject的实例作为公共(public)属性:classAContainer{SomeDisposableObjectm_someObject=newSomeDisposableObject();publicSomeDisposableObjec

c# - "type-safe"和 "strongly typed"是同一个意思吗?

“类型安全”和“强类型”是同一回事吗? 最佳答案 不,不一定-虽然这取决于您对术语的定义,并且没有非常明确和广泛接受的定义。例如,动态编程语言通常是类型安全的,但不是强类型的。换句话说,没有编译时类型信息来确定您可以对类型做什么和不能做什么,但在执行时,运行时会确保您不会将一种类型当作另一种类型来使用。例如,在C#4.0中,您可以:dynamicfoo="hello";dynamiclength=foo.Length;//UsesString.Lengthatexecutiontimefoo=newint[]{10,20,30};l

c# - C# 子类中的 protected 属性是否应该隐藏对父类公共(public)属性的访问?

我有以下代码:publicclassParent{publicstringMyField{get;set;}}publicclassChild:Parent{protectednewintMyField{get;set;}}我尝试通过以下方式访问它:staticvoidMain(string[]args){Childchild=newChild();child.MyField="something";}Visualstudio2008编译时没有注释,但在Mono(2.4.2,Ubuntu)下我收到错误消息'HideTest.Child.MyField'isinaccessibledue

c# - 为什么没有人接受 C# 中的公共(public)字段?

似乎每个C#静态分析器在看到公共(public)字段时都想提示。但为什么?当然,在某些情况下,一个公共(public)(或内部)字段就足够了,并且拥有一个带有get_和set_的属性是没有意义的方法?如果我确定我不会重新定义该字段或向其添加内容(副作用很糟糕,对吧?)-难道一个简单的字段就不够了吗? 最佳答案 因为它破坏了封装——这就是为什么大多数人大量使用访问器的原因。但是,如果您认为它是您任务的正确解决方案,请忽略它(意味着严格的封装投诉)并为您的项目做正确的事情。不要让OO纳粹分子告诉你其他情况。

c# - 在 C# 中是否可以使用同名的公共(public) getter 和私有(private) setter?

如何为属性创建公共(public)getter和私有(private)setter?以下是正确的吗?publicStringPassword{set{this._password=value;}}privateStringPassword{get{returnthis._password;}} 最佳答案 是的,即使使用自动属性也是可能的。我经常使用:publicintMyProperty{get;privateset;} 关于c#-在C#中是否可以使用同名的公共(public)gette

C#、不变性和公共(public)只读字段

我在很多地方都读到公开字段不是一个好主意,因为如果您以后想要更改属性,您将不得不重新编译所有使用您的类的代码。但是,在不可变类的情况下,我不明白为什么您需要更改属性-毕竟您不会向“集合”添加逻辑。对此有什么想法,我是否遗漏了什么?区别的例子,对于那些比文本更容易阅读代码的人:)//ImmutableTupleusingpublicreadonlyfieldspublicclassTuple{publicreadonlyT1Item1;publicreadonlyT2Item2;publicTuple(T1item1,T2item2){Item1=item1;Item2=item2;}}

c# - 抽象类的 protected 与公共(public)构造函数?有区别吗?

这个问题是出于好奇。有区别吗:publicabstractclassMyClass{publicMyClass(){}}和publicabstractclassMyClass{protectedMyClass(){}}谢谢。 最佳答案 它们在所有实际用途中都是相同的。但由于您要求差异,我能想到的一个差异是,如果您使用反射搜索类的构造函数,那么匹配的BindingFlags将不同。BindingFlagsflags=BindingFlags.Public|BindingFlags.Instance;varconstructor=typ