草庐IT

构造器

全部标签

c# - 结构图,采用插件列表的构造函数

我有一个这样的界面publicinterfaceIWriter{...}和一个类publicclassWriterMerger{publicWriterMerger(IEnumerablewriters)...}我希望structuremap用所有已注册的IWriter填充WriterMerger上的构造函数参数。我注册了不同的作者StructureMap.ObjectFactory.Initialize(x=>{x.ForRequestedType().AddConcreteType();x.ForRequestedType().AddConcreteType();x.ForRequ

C# 构造函数

有人可以建议我在编写C#构造函数时采用什么方法吗?在其他语言中,例如C++,一切都很好-您通常不会使内部字段可见并为它们提供getters/setters。这意味着,您可以为您的类提供构造函数,这些构造函数初始化所有/部分本地成员并且很高兴。但是,C#具有属性,它允许我们编写如下内容:Classx=newClass{Field1=newField1....,Field2=newField2}这允许链接对象构造,并且正如我假设的那样,可以删除很多构造函数,如果我们没有properties,这将是必需的。正如我假设的那样,将它与属性的默认值结合起来,我们可以完全摆脱非专用构造函数,它们实际

c# - 在显式构造函数之外初始化字段是不好的做法吗

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicate:Initializeclassfieldsinconstructororatdeclaration?我们正在争论编码实践。这里的例子有点太简单了,但真正的交易有几个构造函数。为了初始化简单值(例如,将日期设置为最小值),我已将代码从构造函数中移出并移入字段定义中。publicclassConstructorExample{string_string="John";}publicclassConstructorExample2{string_string;publicConstructorExample2(){

c# - 一个类怎么可能没有构造函数呢?

前段时间我询问了有关实例化HttpContext对象的问题。现在我已经了解了我不知道的东西,让我感到困惑的是你不能说HttpContextctx=newHttpContext();因为该对象没有构造函数。但是不是每个类都需要一个构造函数吗?在C#中,如果您不提供,编译器会自动为您提供默认的cstr。另外,如果我有一个字符串(例如:“HelloThere!”)并且我说Convert.ToBoolean("Hello")或任何字符串,这是如何工作的?幕后发生了什么?我想在这种情况下,像CLRViaC#这样的书会很方便。我错过了什么? 最佳答案

c# - 为什么 C# 在基本构造函数之前设置私有(private)变量,而 VB.NET 却相反?

有一个问题比较C#代码和VB.NET,看似相同的代码之间的结果完全不同。(Iwroteaprogramthatallowtwoclassesto"fight".ForwhateverreasonC#alwayswins.What'swrongwithVB.NET?)给出的解释是,C#会初始化类字段,然后调用基础构造函数,但VB.NET恰恰相反。我的问题是-为什么?语言不同是否有技术原因?乍一看,这两种方法似乎都同样有效,但我不明白为什么他们不会选择相同的方法。编辑:正如“JeffreyLWhitledge”所指出的那样,VB6没有继承,所以我认为我们不能说“让VB.NET和VB6保持更

c# - 静态构造函数创建 [Mono.Cecil]

我的项目中的静态构造函数一直存在一些问题。我需要向类型“”添加一个静态构造函数,以便调用我的资源解密方法。在下面的gif中,您会看到我遇到的问题。我还将包含代码片段。创建cctor的代码:MethodDefinitionmethod=newMethodDefinition(".cctor",Mono.Cecil.MethodAttributes.Private|Mono.Cecil.MethodAttributes.Static|Mono.Cecil.MethodAttributes.HideBySig|Mono.Cecil.MethodAttributes.SpecialName|M

c# - C# 构造函数 extern 修饰符的用途

C#构造函数extern修饰符的用途是什么?我知道使用externMETHODS调用Win32函数,但是CONSTRUCTORS呢?请给出实际例子。请注意:classMyClass{publicexternMyClass();} 最佳答案 我相信externctor的一个用途/目的是让构造函数在CLR本身内实现。如果您使用Reflector反汇编mscorlib.dll并查看System.String类型,您将看到:[MethodImpl(MethodImplOptions.InternalCall)]publicexternStr

c# - "using"构造和异常处理

“using”结构对于需要开始和分开的结束部分的情况看起来非常方便。快速举例说明:using(newTag("body")){Trace.WriteLine("hello!");}//...classTag:IDisposable{Stringname;publicTag(Stringname){this.name=name;Trace.WriteLine("");Trace.Indent();}publicvoidDispose(){Trace.Unindent();Trace.WriteLine("")}}开始部分定义为构造函数,结束部分为Dispose方法。然而,尽管这个结构很有

c# - 不明确的构造函数调用错误

我有一个类叫做Test它有一个constructor接受Action另一个接受Func.请看下面的片段。publicclassTest{//constructorspublicTest(){}publicTest(Actionaction){}publicTest(Funcaction){}//methodswithsamesignatureofconstructorpublicvoidMyMethod1(Actionaction){}publicvoidMyMethod2(Funcaction){}}publicpartialclassMainWindow:Window{public

c# - 为什么(或不是)在构造函数中设置字段是线程安全的?

假设您有一个像这样的简单类:classMyClass{privatereadonlyinta;privateintb;publicMyClass(inta,intb){this.a=a;this.b=b;}publicintA{get{returna;}}publicintB{get{returnb;}}}我可以以多线程方式使用这个类:MyClassvalue=null;Task.Run(()=>{while(true){value=newMyClass(1,1);Thread.Sleep(10);}});while(true){MyClassresult=value;if(resul