首页 新闻 会员 周边 捐助

求解释~~~~~

0
悬赏园豆:5 [已解决问题] 解决于 2011-01-30 14:37

今天无意发现这个情况,求解释下:

[Serializable]
[ComVisible(
true)]
public abstract class Stream : MarshalByRefObject, IDisposable
{
// 摘要:
// 无后备存储区的 Stream。
public static readonly Stream Null;

// 摘要:
// 初始化 System.IO.Stream 类的新实例。
protected Stream();
public abstract bool CanRead { get; }
public virtual void WriteByte(byte value);
}

抽象类中 Proteced Stream();能这样写吗??

大家可以定位到Stream 类看看

 

为什么我的抽象类中不能这样构造??

like%'远远'%的主页 like%'远远'% | 小虾三级 | 园豆:635
提问于:2011-01-27 14:10
< >
分享
最佳答案
0

转到定义看的话,构造函数不都是这样的吗。只不过有的构造函数是public 有的是protected。

你可以看看其他类,比如DataTable,DataSet等等。

这个不是实际的代码,只是函数的列表

收获园豆:5
wang_yb | 老鸟四级 |园豆:4891 | 2011-01-27 16:08
。。。 按照你的思路就是说,所有转到定义的类,都只是一个函数的列表了,那我想问下,你能否也能帮我生成一个类似的函数列表,因为我所接触的OOP 没有像他那样的写法
like%'远远'% | 园豆:635 (小虾三级) | 2011-01-27 16:39
@like%'远远'%: 这个函数列表其实就是这个dll或者exe的metadata(元数据),是用来描述这个程序的。 OOP确实没有这种写法,这是.net metadata的写法,不是可执行程序的写法。 metadata中的每个函数都是类似public void XXX(string xxx);这种形式的,不光是构造函数。 你如想生成类似的函数列表,只需将你的A程序编译成dll或者exe,让另外的一个B程序引用这个dll或exe,在B程序中通过F12就查看所引用的A中的类看到这个列表。 其实这个只是visualstudio显示metadata的一种方式,metadata本身是二进制形式存储在dll或exe中的
wang_yb | 园豆:4891 (老鸟四级) | 2011-01-27 21:40
晕,我糊涂了,谢谢提醒!
like%'远远'% | 园豆:635 (小虾三级) | 2011-01-30 14:36
其他回答(2)
0

http://www.cnblogs.com/netlyf/archive/2009/12/14/1623795.html

life++ | 园豆:312 (菜鸟二级) | 2011-01-27 14:38
我知道抽象类中能构造,但是你见过这样的构造吗? protected Stream();
支持(0) 反对(0) like%'远远'% | 园豆:635 (小虾三级) | 2011-01-27 14:47
0

[Serializable]
[ComVisible(
true)] 

可以这样

keepsilence | 园豆:457 (菜鸟二级) | 2011-01-27 14:42
我也添加了这个,但是不行
支持(0) 反对(0) like%'远远'% | 园豆:635 (小虾三级) | 2011-01-27 14:44
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Runtime.InteropServices; using System.Security.Permissions; using System.Threading; [Serializable, ComVisible(true)] public abstract class Streams : MarshalByRefObject, IDisposable { // Methods protected Streams() { } public void Dispose() { this.Close(); } public virtual void Close() { this.Dispose(); GC.SuppressFinalize(this); } } //复制到IDE里面看看
支持(0) 反对(0) keepsilence | 园豆:457 (菜鸟二级) | 2011-01-27 15:08
我看到你的protected Streams() { } 是这样写的,但是你看下Stream这个类的构造你就明白我的意思了,他的写法是不带大括号的,即protected Streams() ;
支持(0) 反对(0) like%'远远'% | 园豆:635 (小虾三级) | 2011-01-27 15:14
你是这么看的是转到定义的吗? 你用reflector去反编译一下就知道了
支持(0) 反对(0) keepsilence | 园豆:457 (菜鸟二级) | 2011-01-27 15:38
是的,我是转到定义的
支持(0) 反对(0) like%'远远'% | 园豆:635 (小虾三级) | 2011-01-27 15:42
reflector? 不好意思,没接触个...
支持(0) 反对(0) like%'远远'% | 园豆:635 (小虾三级) | 2011-01-27 15:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册