簡體   English   中英

C# 無法從“對象”轉換為“System.Net.EndPoint”

[英]C# Cannot convert from 'object' to 'System.Net.EndPoint'

https://i.stack.imgur.com/tnx9E.png

我正在將一個開源程序從 VB 轉換為 C#,但出現此錯誤。 我花了很多時間尋找解決方案,以及嘗試自己的解決方案,但我一無所獲。 有什么建議么?

端點真的存在嗎?

端點真的是 System.Net.EndPoint 嗎?

如果是這樣,您應該將 [endpoint] 的 class 更改為 System.Net.EndPoint。

或者使用 cast 方法作為

client.SendTo(System.Text.Encoding.Default.GetBytes(A2S_INFO), (System.Net.EndPoint)endpoint);

為什么會出現這個問題?

Socket.SendTo的方法需要一個EndPoint類型的參數,但是您向它傳遞了一個類型為Object的字段( private object endPoint ),它等同於EndPoint

解決方案

在這種特殊情況下的解決方案是將您的private object endPoint聲明為private EndPoint endPoint ,因為您知道該字段的值將始終為EndPoint類型或某些繼承的相同類型的 class 。

您還可以將字段轉換為EndPoint類型,如下所示: (EndPoint)endPoint並保留聲明為Object的字段。 但是,如果您知道變量的實際類型,那么通常變量永遠不應為Object類型。 Object僅在值類型未知的情況下使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM