c#

位置:IT落伍者 >> c# >> 浏览文章

正确理解C#中的关键字[3]


发布日期:2020年07月06日
 
正确理解C#中的关键字[3]

//

// MyClass definition

#pragma once

class MyClass

{

public:

int Value;

};

typedef MyClass* MyClassPtr;

//

// Tester methods

void TestRef(char* i)

{

*i = b;

}

void TestNoRef(char i)

{

i = c;

}

void TestRef(MyClassPtr* m)

{

(*m)>Value = ;

}

void TestNoRef(MyClassPtr m)

{

m>Value = ;

}

void TestCreateRef(MyClassPtr* m)

{

delete (*m);

*m = new MyClass();

(*m)>Value = ;

}

void TestCreateNoRef(MyClassPtr m)

{

m = new MyClass();

m>Value = ;

}

int main(int argc char* argv[])

{

char c = a;

TestRef(&c);

printf(%c\n c); // output: b

TestNoRef(c);

printf(%c\n c); // output: b

MyClassPtr m = new MyClass;

m>Value = ;

TestRef(&m);

printf(%d\n m>Value);

TestNoRef(m);

printf(%d\n m>Value);

TestCreateRef(&m);

printf(%d\n m>Value);

TestCreateNoRef(m);

printf(%d\n m>Value);

delete m;

return ;

}

这两段分别用 C# 和 C++ 实现的代码的输出结果都是一样的后面用 MyClass 测试的输出结果是

具体的原因相信经过大家的分析应该会很清楚的另外如果大家有兴趣可以用 structs 再试试也可以同时对 structs 在 C++ 和 C# 中的区别有进一步的认识

[] [] []

               

上一篇:正确理解C#中的关键字[2]

下一篇:正确理解C#中的关键字[1]