草庐IT

构造器

全部标签

c# - 如何强制在 C# 中调用基本构造函数?

我有一个所有其他页面派生自的BasePage类:publicclassBasePage这个BasePage有一个构造函数,其中包含必须始终运行的代码:publicBasePage(){//Importantcodehere}我想强制派生类调用基构造函数,如下所示:publicMyPage:base(){//Pagespecificcodehere}我如何强制执行此操作(最好是在编译时执行)? 最佳答案 基础构造函数总是会在某个时刻被调用。如果您调用this(...)而不是base(...)那么它会调用同一个类中的另一个构造函数-这将

c# - 嵌套类构造函数的可见性

有没有办法限制C#中嵌套类的实例化?我想防止嵌套类从嵌套类以外的任何其他类实例化,但要允许从其他代码完全访问嵌套类。 最佳答案 通常我会为您想要向其他类公开的功能创建一个接口(interface),然后将嵌套类设为私有(private)并实现该接口(interface)。这样嵌套类定义就可以保持隐藏状态:publicclassOuter{privateclassNested:IFace{publicNested(...){}//interfacememberimplementations...}publicIFaceGetNeste

c# - 在 NUnit 参数化测试中找不到合适的构造函数

查看下面的测试夹具:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingNUnit.Framework;//////TestsrelatingtoHarryPotter///[TestFixture("Dumbledore")]publicclassHarryPotterTests{publicstringName;publicHarryPotterTests(stringpersonName){Name=personName;}[Test]publicvoidTest()

c# - 方法和构造函数

我现在正在学习C#,是编程界的初学者。我有一本HerbertSchildt的书,叫做TheCompleteReference。到目前为止,这是一本好书,我正在学习方法和构造函数。我很困惑方法和构造函数的区别。因为在书中它有几乎相同的例子。我不知道如何区分它们。我会很感激你的想法。顺便说一句,我在这里有几个定义,我只是想知道如何区分它们谢谢你的帮助干杯 最佳答案 构造函数仅在您创建类的新实例时起作用。这是在实例上运行的第一个方法,它必须运行,并且只运行一次。实例上的方法在实例创建后可以在零次到无限次之间的任何地方调用。构造函数是隐式运

C# GC.Collect 如果对象是使用实例构造函数初始值设定项构造的,则不会销毁该对象

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:ResurrectiondifferenceinusingObjectInitializer我很难理解垃圾收集器在C#中的工作原理(我使用的是2012,所以是c#4.5)。这是我的示例代码:publicclassA{publicintc;publicA(){}publicA(intpC){c=pC;}}publicstaticvoidMain(){//Test1vara=newA{c=199};varaRef=newWeakReference(a);a=null;Console.WriteLine(aRef.I

c# - 找不到 Xamarin.Forms.Platform.Android.LabelRenderer(xamarin 表单)的构造函数

我的xamlonpcl项目中有一个图像列表当我在samsumggalaxys5设备上测试我的应用程序时我这样做:我进入列表的页面,然后我按下操作栏上的后退按钮......我做了很多次......然后,它发生了:System.NotSupportedException:UnabletoactivateinstanceoftypeXamarin.Forms.Platform.Android.Platform+DefaultRendererfromnativehandle0x20e0001d(key_handle0x42433c30).或Unabletoactivateinstanceoft

c# - 无法使用 Json.NET 反序列化具有多个构造函数的类

这个问题在这里已经有了答案:JSON.net:howtodeserializewithoutusingthedefaultconstructor?(6个答案)关闭6年前。我有一个我不能用多个构造函数控制的类型,等同于这个:publicclassMyClass{privatereadonlystring_property;privateMyClass(){Console.WriteLine("Wedon'twantthisonetobecalled.");}publicMyClass(stringproperty){_property=property;}publicMyClass(ob

c# - 仅在构造函数中使用私有(private) setter 是否会使对象线程安全?

我知道我可以像这样创建一个不可变的(即线程安全的)对象:classCantChangeThis{privatereadonlyintvalue;publicCantChangeThis(intvalue){this.value=value;}publicintValue{get{returnthis.value;}}}但是,我通常会“作弊”并这样做:classCantChangeThis{publicCantChangeThis(intvalue){this.Value=value;}publicintValue{get;privateset;}}然后我想知道,“为什么这行得通?”它真

c# - 如何使用反射来简化构造函数和比较?

我讨厌一堆“左/右”方法。每次添加或删除属性时,我都必须修复每个方法。而且代码本身看起来……是错误的。publicFoo(Fooother){this.Bar=other.Bar;this.Baz=other.Baz;this.Lur=other.Lur;this.Qux=other.Qux;this.Xyzzy=other.Xyzzy;}实际上,这只是一个循环遍历属性的展开循环,在对象之间复制它们。那么为什么不诚实地面对这个事实呢?反射(reflection)救援!publicFoo(IFooother){foreach(varpropertyintypeof(IFoo).GetPr

c# - 用户 (IPrincipal) 在使用 Web Api 2.1 和 Owin 的 ApiController 构造函数上不可用

我将WebApi2.1与Asp.NetIdentity2一起使用。我试图在我的ApiController的构造函数上获取经过身份验证的用户(我正在使用AutoFac注入(inject)我的依赖项),但是当构造函数是打电话。我正在尝试获取用户,以便为任何数据库写入操作生成审计信息。我正在做的一些事情可以帮助诊断:我正在使用仅app.UseOAuthBearerTokens作为Asp.NetIdentity2的身份验证。这意味着我删除了app.UseCookieAuthentication(newCookieAuthenticationOptions())当您使用Asp.NetIdenti