- - PR -
IP通信のポート番号と .NETの型
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-02-11 14:39
お世話になります。
.NET Framework 2.0 のクラスライブラリを眺めています。 たとえば System.Net.Sockets.TCPClient.Connect メソッド の引数や、 System.Net.Mail.SmtpClient.Port プロパティ は System.Int32 型で値を受け取るようです。 これらの項目はポート番号をセットするために用意されているということで、 渡すことのできる数値は 0 から 65535 までの範囲であると理解しています。 65535以下の数値を要求するのであれば、System.Int32 よりも System.UInt16 の方が より相応しい型ではないかと思うのですが、なぜそうなっていないのでしょうか。 System.UInt16 は CLS に準拠していないということなので、それが理由でしょうか。 | ||||||||
|
投稿日時: 2006-02-11 17:25
もう答えが出ていますね。
System.Int16 では 65536 までは扱えませんが、 System.Int32 であれば、扱うことができます。 また、1.1 時代のリファレンスには、UInt16 の説明として、 > UInt16 型は CLS との互換性がありません。 > CLS との互換性が必要な場合は、代わりに Int32 を使用してください。 と、しっかり書かれています。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-02-11 17:28
じゃんぬねっとさん、返信ありがとうございます。
得心しました。 |
1