我误解了c#中的变量访问吗?
本文关键字:变量 访问 误解 | 更新日期: 2023-09-27 18:07:45
我有一个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);
}
}
我希望能够从任何用Utils.dll
编译的c#可执行文件中访问foo
,但显然不是;编译器(我使用Mono)说error CS0119: Expression denotes a 'method group', where a 'variable', 'value' or 'type' was expected
。我曾尝试将public
, static
和const
以各种排列方式添加到string foo
,但没有成功。
我是否误解了c#中的变量访问方式?有什么方法可以完成我想做的事吗?
是的,你误解了。
你的foo字符串被声明为一个局部变量,所以只有方法B可以访问它。顺便说一句,我也不知道你的B对象是一个方法(在这种情况下,它应该是B()而不是B)还是一个属性(但B没有get或set so..)。
如果B返回"abc"而不是foo,为什么需要从B访问foo ?