草庐IT

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

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

c# - 类和数据类型有什么区别?

我听说过以下说法:Wecansayclassisadatatypeoradatatypeisonetypeofclass.谁能给我解释一下这到底是什么意思? 最佳答案 C#isastronglytypedlanguage;thereforeeveryvariableandobjectmusthaveadeclaredtype.数据类型可以描述为:Abuilt-indatatype,suchasanintorchar,orAuser-defineddatatype,suchasaclassorinterface.Datatypesca

c# - C#中的对象和类有什么区别?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Differencebetweenobjectandinstance我有几个问题:类的每个实例(抽象类除外)都是对象?抽象类无法实例化,因此它们不是对象?谁能帮助我更好地理解上述与C#相关的概念?

c# - 状态设计模式的功能等价物

状态设计模式的函数式编程等价物是什么?或者更具体地说,thisWikipediaexample会怎样?状态设计模式将转化为FP? 最佳答案 此模式是使用Statemonad的示例,一个计算环境用状态增加代码。这是Haskell中的一个实现。一些助手:importControl.Monad.Trans.StateimportControl.Monad.IO.ClassimportData.Char程序的两种运行模式dataMode=A|B这种模式下的状态计算类型,增加了一个计数器。typeStateMa=StateT(Int,Mode

c# - 在非静态类中调用静态方法时是否实例化了一个类?

在Bar类中调用Foo.SomeCheck()时到底发生了什么?是否创建了Foo实例以调用SomeCheck()?如果是这样,这个实例是否存储在堆上,是否通过垃圾收集收集过?publicclassFoo(){publicstaticboolSomeCheck(){returntrue;}}publicclassBar(){publicvoidSomeMethod(){//whathappenswhenweaccessFootocallSomeCheck?if(Foo.SomeCheck()){//dosomething}}} 最佳答案

c# - 为什么我不能像在方法上那样在类变量上使用虚拟/覆盖?

在下面的示例中,我可以在inherited类中创建一个virtual方法Show(),然后override它在继承类中。我想用protected类变量prefix做同样的事情,但我得到了错误:Themodifier'virtual'isnotvalidforthisitem但是因为我不能在我的类中将这个变量定义为virtual/override,所以我得到了编译器警告:TestOverride234355.SecondaryTransaction.prefix'hidesinheritedmember'TestOverride234355.Transaction.prefix'.Use

C# 友元类和 OOP 组合

给定包含原始数据集的类A和包含该数据的重组版本(GUI就绪)的类B,我想让A中的原始数据在B中可见。显然,A类中的原始数据包含在私有(private)成员中。我想通过使用类似于C++友好类方法的方法使该数据在B中可见。我该如何解决这个问题?谢谢。 最佳答案 严格来说,您不能定义可以向其公开数据的特定类(或类列表)。但是,您可以使用internal访问修饰符而不是private,这使得成员可用于同一程序集中的任何类。话虽这么说,您应该强烈考虑通过属性而不是字段公开这些成员(我猜您正计划公开这些成员)。这样做将允许该类准确定义该信息如何

c# - C#中的重用抽象原则

在我们的C#MVC应用程序中,我们有很多接口(interface)与实现它们的对象一对一映射。即:基本上,对于创建的每个对象,都执行了“提取接口(interface)”操作。Moq使用这些接口(interface)为我们的单元测试生成模拟对象。但那是唯一一次重新使用接口(interface)。我们系统中没有具体对象实现多个接口(interface)。谁能告诉我这是否会在以后造成问题?如果是这样,它们会是什么?我在想,我们的应用程序有很多重复,例如在这两个接口(interface)中(编辑:在我们的服务层中)唯一不同的是方法名称和它们采用的参数类型,但是从语义上讲,他们对发送消息的存储库

c# - 为什么我需要使用 get 和 set?

我有一段代码:publicclassMyClass{privatestring_myProperty;publicstringMyProperty{get{return_myProperty;}set{_myProperty=value;}}}这里有什么意义?我可以将_myProperty字符串声明为公共(public)字符串,我的任何类对象都可以直接访问它们并获取或设置值。相反,我们将_myProperty设为私有(private),并使用类对象使用get和set来访问它们。在任何一种情况下,类对象都能够访问它们并且结果总是相同的。那么为什么要使用这种方法呢?这仅仅是因为我可以在se

c# - 构造函数应该解析输入吗?

通常,我发现我必须实例化一堆对象,但我发现将此实例化的参数作为人类可读的文本文件提供更容易,我手动编写并将其作为输入输入到程序中。例如,如果对象是Car,那么文件可能是一堆行,每行包含名称、速度和颜色(三个必需的构造函数参数),用制表符分隔:Mycar65RedArthur'scar132PinkOldjunkcar23Rustbrown这对我来说很容易进行目视检查、修改或由另一个程序生成。然后程序可以加载文件,获取每一行,解析出相关参数,将它们提供给Car(stringname,intspeed,uintcolor)构造函数并创建对象。请注意在与构造函数兼容之前必须对输入做一些工作: