我有一个Utils.dll
来源,看起来像这样:
using System;
namespace Utils
{
public static class A
{
public static string B()
{
string foo = "Lorem ipsum dolor sit amet...";
return "abc";
}
}
}
和包含源代码的可执行文件:
using System;
using Utils;
public class Program
{
public static void Main(string[] args)
{
Console.WriteLine(A.B());
Console.WriteLine(A.B.foo);
}
}
我希望能够从使用foo
编译的任何C#可执行文件中访问Utils.dll
,但显然不是;编译器(我使用Mono)说error CS0119: Expression denotes a 'method group', where a 'variable', 'value' or 'type' was expected
。我已经尝试将public
,static
和const
以各种排列方式添加到string foo
,但没有成功。
我是否误解了C#中的变量访问是如何工作的?有没有办法完成我想要做的事情?
答案 0 :(得分:4)
是的,你是误会。
您的foo字符串被声明为局部变量,因此只有方法B可以访问它。顺便说一句,我也不知道你的B对象是否是一个方法(在这种情况下它应该是B()而不是B)或属性(但是B没有得到或设置为......) 。
如果B返回“abc”而不是foo,为什么你需要从B访问foo?