[問題] override問題
首先,我想要直接繼承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
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):