作者sosokill (随便杀)
看板C_Sharp
标题[问题] override问题
时间Tue Nov 24 19:39:54 2009
首先,我想要直接继承Socket类别,但是却会出现
"方法 'Socket' 没有任何多载使用 '0' 个引数"
的Error
override 在MSDN上写到:
提供继承自基底类别的成员新实作。
被覆写的基底方法必须是 virtual、abstract 或 override。
不能变更 virtual 方法的存取范围。override 方法和
virtual 方法都必须有相同的存取层级修饰词。
不能使用 new、static、virtual 或 abstract 等修饰词修改 override 方法。
现在我需要继承一个C#已经内建的socket类别,并且修改Send、Receive、Accept等
三个方法,使其呼叫的时候可以转到form里面的method
但是override里的 "被覆写的基底方法必须是 virtual、abstract 或 override"
这个条件却只得我没办法直接使用override。
有尝试过使用virtual和new,但是跑出的Error似乎更多= =
在C的MFC里面可以直接继承Socket类别,并且可以直接复写过去,
可是C#似乎比较麻烦,目前不知道该如何下手,不知有哪位高手可以帮忙一下,
感谢~"~
程式码如下(Class.cs):
using System;
using System.Collections.Generic;
using System.Net;
using System.Net.Sockets;
namespace classtest
{
class Class1 : Socket //Error:方法 'Socket' 没有任何多载使用 '0' 个引数
{
public override int Send(byte[] buffer) //无法覆写继承的成员
'System.Net.Sockets.Socket.
Send(byte[])',因为它没有标记
为 virtual、abstract 或 override
{
Console.WriteLine("OK");
return 0;
}
}
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.136.43.181