- struct 测试
internal class StructTest
{
public struct Rectangle
{
public int Width;
public int Height;
public Rectangle(int w,int h) {
Width = w;
Height = h;
}
}
public StructTest():this(1000,100) {
}
public StructTest(int Width,int Height) {
Display(new Rectangle(Width, Height));
}
public StructTest(Rectangle rectangle){
Display(rectangle);
}
public void Run() {
Rectangle rectangle;
rectangle.Width = 10;
rectangle.Height = 10;
Rectangle rectangle2 = new Rectangle();
rectangle2.Width = 20;
rectangle2.Height = 20;
Rectangle rectangle3 = new Rectangle(30,30);
Display(rectangle);
Display(rectangle2);
Display(rectangle3);
}
private void Display(Rectangle rect) {
Console.WriteLine($"Width:{rect.Width} Height:{rect.Height}");
}
测试:
StructTest StructTest = new StructTest();
StructTest.Run();
- Static 测试
internal class StaticTest
{
public static string Sample { get; set; }
static StaticTest() {
Sample = "5748";
Console.WriteLine("调用静态构造函数");
}
}
Console.WriteLine(StaticTest.Sample);
Console.WriteLine(StaticTest.Sample);
Console.WriteLine(StaticTest.Sample);
- 参数传递测试
internal class TransmitTest
{
public string Name { get; set; }
public int Code { get; set; }
public void Update(TransmitTest transmitTest) {
transmitTest = new TransmitTest
{
Name = "asghdfklaf",
Code = 13245
};
}
public void Update2(ref TransmitTest transmitTest)
{
transmitTest = new TransmitTest
{
Name = "asghdfklaf",
Code = 13245
};
}
}
TransmitTest TransmitTest = new TransmitTest()
{
Name = "sfhasjkf",
Code = 45613
};
TransmitTest.Update(TransmitTest);
Console.WriteLine($"Name:{TransmitTest.Name} Code:{TransmitTest.Code}");
TransmitTest.Update2(ref TransmitTest);
Console.WriteLine($"Name:{TransmitTest.Name} Code:{TransmitTest.Code}");
- ref 测试
public class RefTest
{
private int value0;
private int value1;
public int value2 => value0;
public ref int value3 => ref value1;
}
RefTest RefTest = new RefTest();
int xxx = 300;
xxx = RefTest.value2;
xxx = RefTest.value3;
Console.WriteLine(RefTest.value2);
Console.WriteLine(RefTest.value3);
ref int xxx2 =ref RefTest.value3; ;
xxx2 = 50;
Console.WriteLine(RefTest.value2);
Console.WriteLine(RefTest.value3);
- 函数参数测试
internal class ParamsTest
{
public ParamsTest(params int[] numbers){
foreach (var i in numbers) {
Console.WriteLine(i);
}
}
public void Add(int x, int y) {
Console.WriteLine($"X:{x} Y:{y}");
}
}
var param = new ParamsTest(12, 35, 64, 1500, 15, 16);
param.Add(31, 15);
param.Add(y: 31, x: 15);