寻求 高手 支招。
--------------------编程问答-------------------- 先纠正你一个错误int i = 10; //1
System.Int32=10;//2
//2显然是错误的语法,Int32是结构体没错,但也只是定义的一个类型,直接给类型赋值,是异常的。
然后回答第一问:用const 修饰符声明的变量的值在编译时给定,并且默认为static。所以,两者等价
第二问:当然不能,这不就等于一直循环创建自己的实体,形成死循环么?
第三问:为什么不能在定义ClassA的时候,直接用Class ClassA:ClassB的形式来继承ClassB的方法和属性呢? --------------------编程问答-------------------- 第二问:如果只是这样:
public class errorClass
{
//不能出现此属性:
private errorClass ec=null;
}
这样是可以的,但不能new, --------------------编程问答-------------------- 第三问,除非ClassA是ClassB的派生类,否则无法让ClassA的实例拥有ClassB的属性和方法,
一个对象只能是一个类的实例,不能同时是两个没有派生关系的类的实例, --------------------编程问答-------------------- ---- 补充一下:
第一个问题是 代码写漏了:
本意是 :
int i = 10; //1上下两句是不是等价的?
System.Int32 i=10;//2
这个是我的疑问:----不是很确定,
public const int MaxValue = 2147483647;//上下两句是不是等价的?
public static const int MaxValue = 2147483647;//
第三问是这样的:
之前已定义了ClassA ,ClassB;两个类;
现在,我可以用
Type type = Type.GetType("ClassA", false, true);的方式创他对象o
object o = System.Activator.CreateInstance(type);
但是,我想做到,让对象o 同时有ClassA 的方法属性,又有ClassB 的方法属性,
就好像我声明一个类型 ClassC 同时继承于ClassA ClassB ,
实际上,我 定义ClassC 类型,但是ClaasC 类型 的方法与属性 已确定为 ClassA,ClassB 所有的方法。
做不做得到?
--------------------编程问答-------------------- 第三问是这样的:
之前已定义了ClassA ,ClassB;两个类;
现在,我可以用
Type type = Type.GetType("ClassA", false, true);的方式创建对象o。--但这不是我想要的,
object o = System.Activator.CreateInstance(type);
我想要的是:
让对象o 同时有ClassA 的方法属性,又有ClassB 的方法属性,
就好像我声明一个类型 ClassC 同时继承于ClassA,ClassB ,
实际上,我没有定义ClassC 类型,但是ClaasC 类型 的方法与属性 已确定,为 ClassA,ClassB 所有的方法属性。
这个做不做得到?
--------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 坐等,顶起。 --------------------编程问答--------------------
做不到,但实现这样的功能不难,请参考 适配器模式。 --------------------编程问答-------------------- 答答
一答:const 和 static 不能一起使用。
二答:会产生递归无限循环生成 errorClass 类对象。
三答:一个类只能有一个 parent class,但可以实现多个 inte易做图ce。根据你的需求,你应该把 ClassA, ClassB 定义成 接口。
public inte易做图ce IClassA--------------------编程问答-------------------- 一答:
{
int GetSomething();
}
public inte易做图ce IClassB
{
int GetAnotherThing();
}
public class ClassC : IClassA, IClassB
{
public int GetSomething()
{
//........
}
public int GetAnotherThing()
{
//........
}
}
我认为是,[const][static]可以混用的,
1·static 是指的表示静态的,表示用static 修饰过的方法或属性 是属于类本身的,不是单个对象特有,而是 全部对象共用。不会给每个对象一个单独的常量。
2·const 是表示常量,一旦声明就不能修改。当然类中的常量也是全部对象共用的,不会给每个对象一个单独的常量。
以下参考:
const与static的区别
const与readonly
const static 可以 共用? --------------------编程问答-------------------- 警告楼上,不要倒分,否则XHW。 --------------------编程问答--------------------
怎么知道的? IP?
补充:.NET技术 , C#