Tag: base

访问派生类中的基类变量

class Program { static void Main(string[] args) { baseClass obj = new baseClass(); obj.intF = 5; obj.intS = 4; child obj1 = new child(); Console.WriteLine(Convert.ToString(obj.addNo())); Console.WriteLine(Convert.ToString(obj1.add())); Console.ReadLine(); } } public class baseClass { public int intF = 0, intS = 0; public int addNo() { int intReturn = 0; intReturn = intF + intS; return […]

生成一个带有参数的构造函数,并使用TypeBuilder调用base(argument)

我试图动态创建一个空构造函数,它接受一个参数,并使用TypeBuilder简单地调用base(参数)。 我的代码是这样的: (…) // Create a class derived from this class TypeBuilder typeBuilder = moduleBuilder.DefineType(“NewClass”, TypeAttributes.Class, this.GetType()); ConstructorInfo baseCtor = this.GetType().GetConstructor(new[] { typeof(int) }); // Define new ctor taking int ConstructorBuilder constructorBuilder = typeBuilder.DefineConstructor(MethodAttributes.Public, CallingConventions.Standard, new[] { typeof(int) }); // Generate code to call base ctor passing int ILGenerator ctorIL = constructorBuilder.GetILGenerator(); ctorIL.Emit(OpCodes.Ldarg_0); ctorIL.Emit(OpCodes.Ldarg_1); ctorIL.Emit(OpCodes.Call, […]

有没有内置的方法将整数转换为C#中的字符串(任何基数)?

由于某些奇怪的原因,Convert.ToString()只允许基数值为2,8,10和16; 是否有一些不明确的方式提供2到16之间的任何基础?

C#:如何从派生类的静态方法调用基类的静态方法?

在C#中,我有基类Product和派生类Widget。 产品包含一个静态方法MyMethod()。 我想从静态方法Widget.MyMethod()调用静态方法Product.MyMethod()。 我不能使用base关键字,因为它只适用于实例方法。 我可以显式地调用Product.MyMethod(),但是如果我稍后将Widget更改为从另一个类派生,我必须修改该方法。 C#中有一些类似于base的语法允许我从派生类的静态方法中调用基类的静态方法吗?

将“大”hex数字(字符串格式)转换为十进制数字(字符串格式),不带BigInteger类

如何转换“大”hex数字(字符串格式): EC851A69B8ACD843164E10CFF70CF9E86DC2FEE3CF6F374B43C854E3342A2F1AC3E30C741CC41E679DF6D07CE6FA3A66083EC9B8C8BF3AF05D8BDBB0AA6CB3EF8C5BAA2A5E531BA9E28592F99E0FE4F95169A6C63F635D0197E325C5EC76219B907E4EBDCD401FB1986E4E3CA661FF73E7E2B8FD9988E753B7042B2BBCA76679 到十进制数字(字符串格式): 166089946137986168535368849184301740204613753693156360462575217560130904921953976324839782808018277000296027060873747803291797869684516494894741699267674246881622658654267131250470956587908385447044319923040838072975636163137212887824248575510341104029461758594855159174329892125993844566497176102668262139513 不使用BigInteger类(因为我的应用程序应该支持没有.NET Framework 4的机器)?

从derived而不是base调用的虚方法

有人可以向我解释为什么在将类转换为基类时调用重写的方法: class Base { public virtual void VirtualMethod() { Console.WriteLine(“Base virtual method”); } } sealed class Derived : Base { public override void VirtualMethod() { Console.WriteLine(“Overriden method”); } } static void Main(String[] args) { Derived d = new Derived(); ((Base)d).VirtualMethod(); } 我的意思是这个代码打印: Overriden method 并不是 Base virtual method 它是一个运行时或编译时的未来? 我知道我可以通过调用base.VirtualMethod()来调用Base的虚方法,但是我可以从外面调用吗? (如来自Main或其他课程)