public struct MyStruct
{
public byte[] bytes;
...
}public class Sample
{
public Sample(){}
public MyStruct GetSomeStruct()
{
// return
}
}
{
public byte[] bytes;
...
}public class Sample
{
public Sample(){}
public MyStruct GetSomeStruct()
{
// return
}
}
下面举例说明了同时使用默认构造函数和参数化构造函数的 struct 初始化。 // keyword_struct.cs
// struct declaration and initialization
using System;
public struct Point
{
public int x, y; public Point(int p1, int p2)
{
x = p1;
y = p2;
}
}class MainClass
{
public static void Main()
{
// Initialize:
Point myPoint = new Point();
Point yourPoint = new Point(10,10); // Display results:
Console.Write("My Point: ");
Console.WriteLine("x = {0}, y = {1}", myPoint.x, myPoint.y);
Console.Write("Your Point: ");
Console.WriteLine("x = {0}, y = {1}", yourPoint.x, yourPoint.y);
}
}
输出
My Point: x = 0, y = 0
Your Point: x = 10, y = 10
示例 2
下面举例说明了结构特有的一种功能。该功能创建点对象时不使用 new 运算符。如果将 struct 换成 class,程序将不编译。// keyword_struct2.cs
// Declare a struct object without "new"
using System;
public struct Point
{
public int x, y; public Point(int x, int y)
{
this.x = x;
this.y = y;
}
}class MainClass
{
public static void Main()
{
// Declare an object:
Point myPoint; // Initialize:
myPoint.x = 10;
myPoint.y = 20; // Display results:
Console.WriteLine("My Point:");
Console.WriteLine("x = {0}, y = {1}", myPoint.x, myPoint.y);
}
}
输出
My Point:
x = 10, y = 20
public struct StringByte
{
public byte[] strByte;
}//Using
StringByte myStringByte=new StringByte();
myStringByte.strByte=Encoding.Default.GetBytes("String Test");
MessageBox.Show(Encoding.Default.GetString(myStringByte.strByte);