我不认为只有您对 .Net 是什么感到困惑。已经有其他答案应该涵盖您,但我会为其他人提供这些信息。
要查看 .Net “真正”是什么,只需转到 c:\Windows\Microsoft.Net\Framework
在那里,您将看到特定于您安装的版本的文件夹。例如,如果您安装了 v2.0.xxxxx 文件夹,请进入该文件夹。
在该文件夹中是框架。你基本上会看到一堆 .exe 文件和 .dll 文件。所有以 System.*.dll 开头的 DLL 文件本质上都是 .Net 框架。
您将在该文件夹中看到的 .exe 文件是开发人员和编译器的实用程序。你提到了 C#。找到 csc.exe 文件。那是你的 C# 编译器。
构建一个程序真的很简单。将以下代码放入 hello.cs 文件中。
using System;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("hello world");
}
}
然后在命令行输入> csc hello.cs
这将为您生成一个 .exe 文件。运行它,它显然会吐出'hello world'。
显示 Console.WriteLine() 的行正在调用框架。Console 是一个存在于 System 命名空间中的对象,而 WriteLine() 是一个静态方法。
这是该 Console.WriteLine() 方法的反汇编代码:
[HostProtection(SecurityAction.LinkDemand, UI=true)]
public static void WriteLine(string value)
{
Out.WriteLine(value);
}
当人们说“我应该使用 PHP 还是 .Net?”或“我应该使用 Python 还是 .Net”之类的话时,您会开始看到讨论的问题是错误的。他们显然是将语言与框架进行比较。C# 是一种语言,它只是可用于在 .Net 平台之上编写代码的众多语言之一。Console.WriteLine() 的相同方法可以从 C#、VB.Net、Pascal、C++、Ruby、Python、F# 和任何其他在 .Net 平台上工作的语言调用。
我希望这会有所帮助。
-基思