C#之IP地址和整数互转的小例子
C#之IP地址和整数互转的小例子
发布时间:2016-12-28 来源:查字典编辑
摘要:源码:复制代码代码如下:[StructLayout(LayoutKind.Explicit)]publicstructIP{publicIP...

源码:

复制代码 代码如下:

[StructLayout(LayoutKind.Explicit)]

public struct IP

{

public IP(UInt32 value)

{

this._text1 = 0;

this._text2 = 0;

this._text3 = 0;

this._text4 = 0;

this._value = value;

}

public IP(Byte text1, Byte text2, Byte text3, Byte text4)

{

this._value = 0;

this._text1 = text1;

this._text2 = text2;

this._text3 = text3;

this._text4 = text4;

}

[FieldOffset(0)]

private UInt32 _value;

[FieldOffset(0)]

private Byte _text1;

[FieldOffset(1)]

private Byte _text2;

[FieldOffset(2)]

private Byte _text3;

[FieldOffset(3)]

private Byte _text4;

public UInt32 Value

{

get { return this._value; }

set { this._value = value; }

}

public Byte Text1

{

get { return this._text1; }

set { this._text1 = value; }

}

public Byte Text2

{

get { return this._text2; }

set { this._text2 = value; }

}

public Byte Text3

{

get { return this._text3; }

set { this._text3 = value; }

}

public Byte Text4

{

get { return this._text4; }

set { this._text4 = value; }

}

public override string ToString()

{

return String.Format("{0}.{1}.{2}.{3}", this._text1.ToString(), this._text2.ToString(),

this._text3.ToString(), this._text4.ToString());

}

public static implicit operator IP(UInt32 value)

{

return new IP(value);

}

public static explicit operator UInt32(IP ip)

{

return ip._value;

}

}

测试:

复制代码 代码如下:

class Program

{

static void Main(string[] args)

{

IP ip = new IP(192,168,1,1);

Console.WriteLine(ip);

UInt32 value = (UInt32)ip;

Console.WriteLine(value);

Console.WriteLine(ip.Value);

IP ip2 = (IP)(1234567);

Console.WriteLine(ip2);

Console.ReadKey();

}

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新C#教程学习
热门C#教程学习
编程开发子分类