【发布时间】:2011-07-23 18:31:19
【问题描述】:
我一直在尝试使用 F#,并想尝试在 C# 项目中使用它来编写可以从该语言中受益的某些代码。
我一直试图弄清楚模块和命名空间在 C# 项目中的工作方式。例如以下代码:
namespace File1
#light
type File1(path : string) =
static member Trim(p : string) = p.Trim()
member self.Path = path
然后我尝试在 C# 中使用它:
using File1;
class Program
{
static void Main(string[] args)
{
// Doesn't work
Console.WriteLine(File1.Trim(" hello "));
// Does work
Console.WriteLine(File1.File1.Trim(" hello "));
}
}
我明白为什么第二个有效,但为什么第一个无效?我已经使用 using 声明拉入了命名空间,并且 File1 应该是一个类。 Trim 是该类的静态成员。
【问题讨论】: