是否可以在方法C#中获取一个变量
本文关键字:变量 一个 获取 方法 是否 | 更新日期: 2023-09-27 18:26:53
我想知道我是否可以在方法中获得一个变量,例如:
Foo.cs
public void Foo()
{
int getme = 1;
}
public void FooGetter()
{
Foo(); //how can i get that variable get me ? without using delegates or anything just using method. Foo:getme?
}
您不能直接从另一个方法访问一个方法的局部变量。
但是,您可以将Foo
方法返回类型从void
更改为int
,并返回此变量:
public int Foo()
{
int getme = 1;
return getme;
}
public void FooGetter()
{
int getme = Foo();
}
或者您可以使用out
参数修改器返回:
public void Foo(out int getme)
{
getme = 1;
}
public void FooGetter()
{
int getme;
Foo(out getme);
// at this point getme will contain value assigned in Foo
}
简单的回答:不,这不起作用,因为您的变量只在Foo
的范围内定义。但是,您可以将返回值添加到Foo
:
public int Foo() { return getMe; }
现在,您可以通过调用Foo()
来访问该值。
要进一步了解作用域,请阅读MSDN上的这篇文章。
或者你可以创建一个你的类成员:
class MyClass {
int getme;
void Foo() {
this.getme = 1;
}
void FooGetter() {
var result = this.getme;
}
}
现在您可以在呼叫Foo
之后呼叫FooGetter
。
您应该使用方法返回值。
public int Foo() //change this to return type
{
int getme = 1;
//do something else
return getme;
}
public void FooGetter()
{
int result = Foo(); // here you receive variable getme
}