什么是 C# 等价于 C++ ::(非静态)
What is the C# equavilent of C++ :: (non-static)
我使用 C++ 已经有一段时间了,几周前我开始学习 C#。在编写初始化程序时,我发现我不知道如何使用 :: 运算符。
在 C++ 中,它看起来像:
class something{
bool a;
void doSg();
}
void doSg(){
something::a = true;
}
int main()
{
something mySg;
mySg.doSg();
}
因此,我尝试在 C# 中重新创建 void doSg()
函数:一种修改 class 对象数据的方法,它被调用。
在以下代码中:
class something
{
bool a;
public void func()
{
this.a = true;
}
}
class source
{
something mySg;
mySg.func();
}
this.a = true
有效,还是我应该:
class something
{
bool a;
public myclass func(myclass item)
{
item.a = true;
return item;
}
}
class source
{
something mySg;
mySg = func(mySg);
}
或者有更好的解决方案吗?
var 这里是一个关键字,所以它可能不会像您正在使用的那样起作用。你可以这样做:
class something {
bool myBool;
public void func()
{
this.myBool= true;
myBool= true; //or you can just leave this "this" off
}
}
当调用 something.func() 时,它会将 myBool 设置为 true。
"this" 只是指 class(或结构)本身,不需要经常使用。如果有像这样的重复名称,您只需要它...
class something {
bool myBool;
public void func(bool myBool)
{
myBool= myBool; //would not do anything
this.myBool= myBool; //force class myBool
}
}
至于 return,您列出的第二个示例需要它,但需要更改或删除 var。
class something
{
public Myclass func(myclass item)
{
Myclass item = new myClass(); // first create a class
return item; //since myclass in in the header, we need to return a myclass
}
}
我将 myClass 更新为 MyClass,因为 classes 应该以大写字母开头,但这不是必需的。我希望这对一些人有所帮助。就所有细节而言,C# 与 C++ 不同。
我使用 C++ 已经有一段时间了,几周前我开始学习 C#。在编写初始化程序时,我发现我不知道如何使用 :: 运算符。
在 C++ 中,它看起来像:
class something{
bool a;
void doSg();
}
void doSg(){
something::a = true;
}
int main()
{
something mySg;
mySg.doSg();
}
因此,我尝试在 C# 中重新创建 void doSg()
函数:一种修改 class 对象数据的方法,它被调用。
在以下代码中:
class something
{
bool a;
public void func()
{
this.a = true;
}
}
class source
{
something mySg;
mySg.func();
}
this.a = true
有效,还是我应该:
class something
{
bool a;
public myclass func(myclass item)
{
item.a = true;
return item;
}
}
class source
{
something mySg;
mySg = func(mySg);
}
或者有更好的解决方案吗?
var 这里是一个关键字,所以它可能不会像您正在使用的那样起作用。你可以这样做:
class something {
bool myBool;
public void func()
{
this.myBool= true;
myBool= true; //or you can just leave this "this" off
}
}
当调用 something.func() 时,它会将 myBool 设置为 true。
"this" 只是指 class(或结构)本身,不需要经常使用。如果有像这样的重复名称,您只需要它...
class something {
bool myBool;
public void func(bool myBool)
{
myBool= myBool; //would not do anything
this.myBool= myBool; //force class myBool
}
}
至于 return,您列出的第二个示例需要它,但需要更改或删除 var。
class something
{
public Myclass func(myclass item)
{
Myclass item = new myClass(); // first create a class
return item; //since myclass in in the header, we need to return a myclass
}
}
我将 myClass 更新为 MyClass,因为 classes 应该以大写字母开头,但这不是必需的。我希望这对一些人有所帮助。就所有细节而言,C# 与 C++ 不同。