寻求 高手 支招。

问题描述

C#就是类型与实体的语言,可以说其本质不同与C。类型:描述一种类别的物体有的东西,------类实体:就照这个描述造一个这样的物体。------对象

现在,我写inti;--然后光标移到int中间右键转到定义。

可以看到如下代码:namespaceSystem{//摘要://Representsa32-bitsignedinteger.[Serializable][ComVisible(true)]publicstructInt32:IComparable,IFormattable,IConvertible,IComparable<int>,IEquatable<int>{publicconstintMaxValue=2147483647;publicconstintMinValue=-2147483648;publicintCompareTo(intvalue);publicintCompareTo(objectvalue);publicboolEquals(intobj);publicoverrideboolEquals(objectobj);publicoverrideintGetHashCode();publicTypeCodeGetTypeCode();publicstaticintParse(strings);publicstaticintParse(strings,IFormatProviderprovider);publicstaticintParse(strings,NumberStylesstyle);publicstaticintParse(strings,NumberStylesstyle,IFormatProviderprovider);publicoverridestringToString();publicstringToString(IFormatProviderprovider);publicstringToString(stringformat);publicstringToString(stringformat,IFormatProviderprovider);publicstaticboolTryParse(strings,outintresult);publicstaticboolTryParse(strings,NumberStylesstyle,IFormatProviderprovider,outintresult);}}

原来int是一个结构体,int就是System.Int32;也就是说:--下面这两个代码是等价的。inti=10;//1System.Int32=10;//2

可能是在某处有如下代码:usingint=System.Int32;//可是我又没有发现啊,在何处??

问问:一问:--下面这两条语句是不是等价的?publicconstintMaxValue=2147483647;//publicstaticconstintMaxValue=2147483647;//

二问:在一个非静态类中,一定不能有[类型为当前类的非静态属性];---这句话正解吗?比如://错误的类定义:publicclasserrorClass{//不能出现此属性:privateerrorClassec=newerrorClass();}

这种写法是错的,会出现黑洞。三问:Typetype=Type.GetType("ClassA",false,true);objecto=System.Activator.CreateInstance(type);//就可以得到一个类型为[ClassA]的对象,//现在,我有一个现成的类[ClassB],要如何才能让对象A继承Class的方法与属性?//求指引!

本人没有多少分,就此一点,希望高手不要吝教,小弟始终洗耳巷听。谢谢大家回复!!!!有更好的意见,想法,请发表!!!

解决方案

本帖最后由 Oo_o_oO 于 2012-04-09 01:06:49 编辑
解决方案二:
先纠正你一个错误inti=10;//1System.Int32=10;//2//2显然是错误的语法,Int32是结构体没错,但也只是定义的一个类型,直接给类型赋值,是异常的。然后回答第一问:用const修饰符声明的变量的值在编译时给定,并且默认为static。所以,两者等价第二问:当然不能,这不就等于一直循环创建自己的实体,形成死循环么?第三问:为什么不能在定义ClassA的时候,直接用ClassClassA:ClassB的形式来继承ClassB的方法和属性呢?
解决方案三:
第二问:如果只是这样:publicclasserrorClass{//不能出现此属性:privateerrorClassec=null;}这样是可以的,但不能new,
解决方案四:
第三问,除非ClassA是ClassB的派生类,否则无法让ClassA的实例拥有ClassB的属性和方法,一个对象只能是一个类的实例,不能同时是两个没有派生关系的类的实例,
解决方案五:
----补充一下:第一个问题是代码写漏了:本意是:inti=10;//1System.Int32i=10;//2

上下两句是不是等价的?这个是我的疑问:----不是很确定,publicconstintMaxValue=2147483647;//publicstaticconstintMaxValue=2147483647;//

上下两句是不是等价的?第三问是这样的:之前已定义了ClassA,ClassB;两个类;现在,我可以用Typetype=Type.GetType("ClassA",false,true);objecto=System.Activator.CreateInstance(type);

的方式创他对象o但是,我想做到,让对象o同时有ClassA的方法属性,又有ClassB的方法属性,就好像我声明一个类型ClassC同时继承于ClassAClassB,实际上,我定义ClassC类型,但是ClaasC类型的方法与属性已确定为ClassA,ClassB所有的方法。做不做得到?
解决方案六:
第三问是这样的:之前已定义了ClassA,ClassB;两个类;现在,我可以用Typetype=Type.GetType("ClassA",false,true);objecto=System.Activator.CreateInstance(type);

的方式创建对象o。--但这不是我想要的,我想要的是:让对象o同时有ClassA的方法属性,又有ClassB的方法属性,就好像我声明一个类型ClassC同时继承于ClassA,ClassB,实际上,我没有定义ClassC类型,但是ClaasC类型的方法与属性已确定,为ClassA,ClassB所有的方法属性。这个做不做得到?
解决方案七:
该回复于2012-04-09 11:55:51被版主删除
解决方案八:
该回复于2012-04-09 11:55:58被版主删除
解决方案九:
坐等,顶起。
解决方案十:
引用5楼的回复:

第三问是这样的:之前已定义了ClassA,ClassB;两个类;现在,我可以用C#codeTypetype=Type.GetType("ClassA",false,true);objecto=System.Activator.CreateInstance(type);的方式创建对象o。--但这不是我想要的,我想要的是:……

做不到,但实现这样的功能不难,请参考适配器模式。
解决方案十一:
答答一答:const和static不能一起使用。二答:会产生递归无限循环生成errorClass类对象。三答:一个类只能有一个parentclass,但可以实现多个interface。根据你的需求,你应该把ClassA,ClassB定义成接口。publicinterfaceIClassA{intGetSomething();}publicinterfaceIClassB{intGetAnotherThing();}publicclassClassC:IClassA,IClassB{publicintGetSomething(){//........}publicintGetAnotherThing(){//........}}

解决方案十二:
一答:我认为是,[const][static]可以混用的,1·static是指的表示静态的,表示用static修饰过的方法或属性是属于类本身的,不是单个对象特有,而是全部对象共用。不会给每个对象一个单独的常量。2·const是表示常量,一旦声明就不能修改。当然类中的常量也是全部对象共用的,不会给每个对象一个单独的常量。以下参考:
解决方案十三:
警告楼上,不要倒分,否则XHW。
解决方案十四:
引用12楼的回复:

警告楼上,不要倒分,否则XHW。

怎么知道的?IP?

时间: 2024-10-30 11:38:01

寻求 高手 支招。的相关文章

w8 w7 y400-联想Y400怎么把W8改为W7,求高手支招~~~~

问题描述 联想Y400怎么把W8改为W7,求高手支招~~~~ 新入手一台联想Y400笔记本,做w8系统64位兼容很差,所以想把系统改为W7 64位的,现在此电脑和系统好像是绑定在一起的.不知道怎么解除,求高手支招怎么改系统.小学语文三体育老师教的,表达不好见谅~

高手支招ASP+Access的安全隐患及对策

access|asp+|安全|安全隐患 随着Internet的发展,Web技术日新月异.继通用网关接口(CGI)之后,"ASP"作为一种典型的服务器端网页设计技术,被广泛地应用在网上银行.电子商务.搜索引擎等各种互联网应用中.同时Access数据库作为微软推出的以标准JET为引擎的桌面型数据库系统,由于具有操作简单.界面友好等特点,具有较大的用户群体.因此ASP+Access成为许多中小型网上应用系统的首选方案.但ASP+Access解决方案在为我们带来便捷的同时,也带来了不容忽视的安

mingw-Code::Blocks Windows环境下编译HelloWorld程序报错,求高手支招!

问题描述 Code::Blocks Windows环境下编译HelloWorld程序报错,求高手支招! 很简单的Hello World 程序,编译时提示: D:MinGWincludec++3.4.5bitscodecvt.h|475 这个文件中引用的 bits/codecvt_specializations.h 文件找不到 请问是哪里出了问题? ?

bcb6-求高手支招!BCB6做一个登陆注册界面,用到ADO组件。怎么实现提示用户名重复?

问题描述 求高手支招!BCB6做一个登陆注册界面,用到ADO组件.怎么实现提示用户名重复? AnsiString sql; ADOConnection1->Open(); ADOQuery1->Connection=ADOConnection1; ADOQuery1->Close(); ADOQuery1->SQL->Clear(); sql="insert into userInfo(userName,pwd) values('"+Edit1->T

20日盗版WindowsXP将黑屏 高手支招

中介交易 SEO诊断 淘宝客 云主机 技术大厅 据微软官方消息:10月20日微软将在中国再次对盗版WindowsXP进行打击,并首次对盗版Office进行验证,盗版用户的Windows XP及Office将被强制插入多处明显的提醒标识,将导致Windows与Office无法预计的破坏. 这一消息顿时让不少的杭州企业忧心忡忡:10月20日那天,我们还能正常工作吗? 昨天早上8点,供职于杭州某广告公司网络部的小盛一走进办公室,就急着将此消息挂在公司内网的平台上.小盛说,公司的60多台电脑,没有一台是

一个奇怪的“未将对象引用设置到对象的实例”错误如何解决?高手支招

问题描述 classA{.....publicA(){......}}classB{privateAa=null;.....publicB(){a=A();......}staticvoidMain(){using(Bb=newB()){While(...){b.a.function();//报错,错误提示"未将对象引用设置到对象的实例"a=null,以前遇到过这类错误,但都易于解决,这次似乎不同,其中逐句调试a所包含的变量.类型均已赋值,可是运行完之后a的状态竟然是"未定义

数位高手支招,草根站长需怎样才能杀出重围

"你敞开怀抱融化了我,你轻拈指尖揉碎了我,你鼓动风云卷走了我,你掀起波澜抛弃了我,爱和恨全有你操纵."这是时下大红大紫的黄绮珊<离不开你>里面的歌词,似乎这句话唱出了我们对于百度的依恋和无奈.主宰万千网站的命运,百般讨好换来的却是几多惆怅! 过去的一年对于草根站长来说,是一个风起云涌.暗流运动.垂死挣扎的时期,每个人的内心很难平静,大家关注最多的就是,百度的折腾对于seo的影响到底有多大,我们该如何去做,前面的路到底是怎样,如今似乎没有多少实战经验可以分享. 关注seo动向

高手支招解决新补丁引发Windows 7黑屏问题

当用户电脑出现此问题时,打开电脑不再看到正常的桌面.任务栏以及系统托盘和侧边栏等,相反只剩下一个黑色的屏幕和一个资源管理器窗口,即使该窗口可以被 最小化不用一直出现在用户面前,但还是非常令人恼火吧!如果你的电脑非常不幸恰好遇上了此问题也不必惊慌,国外PC高手已经提供了一个能暂时解决此问题的 简单方法,当你的电脑出现一些症状的时候,可以马上下载一款免费的Black Screen Fix工具软件,运行此工具就可以尝试修复程序并解决你所遇见的问题,非常简单.但也有部分用户电脑完全黑屏了,可能浏览器在哪

怎么用代码创建一个新的窗体,高手支招!

问题描述 请教下!急用按下BUTTEN就能创建一个新的窗体,窗体上还要放些LABEL,TEXTBOX,里面还要有代码,思想大概是这样该怎么做?高手指教 解决方案 解决方案二:自己写一个控件解决方案三:Formf=newForm();TextBoxtxt=newTextBox();txt.Text="我是文本框";f.Contorls.Add(txt);Labellbl=newLabel();lbl.Text="我是标签";f.Contorls.Add(lbl);f.