12

我正在尝试学习 Windows.Forms,虽然我有 Visual Studio(编辑,显然是我的错误),但我觉得通过在记事本中做所有事情可以更有效地学习。我到处寻找采用这种方法的教程。我终于开始使用http://www.geekpedia.com/tutorial33_Windows-forms-programming.html,但是在第一个示例之后,它也开始使用多个文件吗?以某种方式使用 Visual Studio 生成。如何在记事本中执行此操作?任何人都可以指出我有帮助的地方吗?

谢谢!

**虽然压倒性的反应似乎强烈反对这一点并且我开始相信,但我看到 SmokingRope 谈论它就像将所有类写入一个文件一样简单。到目前为止,这就是我一直在为相当大的、非 Windows.Form 项目所做的事情。您能否帮助解释如何使用此方法包含这些必要的文件?*

4

17 回答 17

29

说真的……我很佩服你的火,但你疯了!您可能希望通过 NotePad 了解 .NET,而您无法通过 Visual Studio 更快地学习数亿倍?这就像在问:“我想学开车。我已经在沙发上装了轮子。接下来我该怎么做?”

我的意思不是不尊重,而是与 Visual Studio 交朋友并忙于学习。否则你就是在浪费时间。

于 2009-08-06T02:16:15.910 回答
9

在 IDE 之外编写C#实际上很容易。它基本上归结为从命令行提示符使用csc.exe编译器。

此过程中最困难的部分是确保正确配置环境变量,Microsoft 提供了vsvars32.bat批处理文件来执行此操作。

这是一个关于如何从命令行使用这个批处理文件和编译器的简短教程:http ://www.zeusedit.com/forum/viewtopic.php?t=1235

还有一个更好但稍微复杂一点的方法是使用MsBuild实用程序来管理项目的构建:http ://www.zeusedit.com/forum/viewtopic.php?t=2518

最后,您甚至可以使用外部C# 调试器来调试您的程序:http ://www.zeusedit.com/forum/viewtopic.php?t=2507

于 2009-08-06T03:03:42.960 回答
4

最好的方法是真正学习如何在 Visual Studio 中编写代码。你会获得很多编码帮助(IntelliSense、语法检查等),这将帮助你学习语言。

如果您真的想使用记事本,那么您可以根据需要创建尽可能少或尽可能多的文件,然后使用命令行编译器通过将每个文件作为编译器的输入列出来将它们编译为程序集。

实际情况是,使用记事本和命令行编译器是可能的,但非常麻烦,而且除了显示简单的“Hello, world”类型示例之外几乎从未使用过。

于 2009-08-06T02:15:58.407 回答
4

我在这里违背了原则......但我认为你的想法并不是那么糟糕......尤其是对于一个小项目。

但是使用记事本(或至少使用记事本++)将教您更多有关 MSBuild 和 VBC 或 CSC 编译器语法的信息,而不是教您有关语言功能的信息。正如其他人所说,学习该语言的最佳方法是使用 Visual Studio。智能感知是一种很好的学习方式。

但这也使我们变得懒惰,而且确实我们不必记住太多……而且有时记住东西会派上用场。(即......我在一个客户那里并远程登录到服务器......没有安装视觉工作室......但是...... yippee...... .NET 2在那里......那一刻你会很欣赏这个练习......)

老实说,为一个相当小的项目做这件事,我认为这将是一个很好的学习练习。我说去吧。地狱,我什至可能会加入你。

但是,也就是说,我认为最好的方法是同时使用这两种方法。例如...如果您想使用多个文件,方法是创建一个文件夹并将 vbproj(或 csproj)文件放入其中。MSBuild.exe 接收 vbproj 文件(和 sln 文件)作为参数。因此,学习 vbproj 文件语法的最快方法之一是使用 Visual Studio 创建一个项目……然后在 Notepad++ 中打开 vbproj 文件。

问题是 Visual Studio 太棒了,因为它从开发人员那里抽象了很多东西。但不承认这样做有不利之处是愚蠢的。这种抽象意味着我们不需要有那么深刻的理解。事情只是自动工作。所以我说再深入一点。我想你不会后悔的。

于 2009-08-17T03:23:12.717 回答
2

您可以在单个 C# 文件中编写多个类(尽管公认的最佳实践是每个文件放置一个类):

using System;
namespace Test{
  class Class1{ }
  class Class2{ }
}

您还可以从命令行查看 MSBuild 系统的工作原理。我相信您仍然需要维护一个项目文件(xml 类型语法,使用 Visual Studio 创建一个项目,然后在记事本中打开它作为示例),但我个人没有任何经验。

可以通过记事本和命令提示符完成所有操作。但是,您可能会发现它更耗时。

于 2009-08-06T02:58:44.543 回答
1

如果你想学习 c# 和 winforms,你需要的部分技能是精通 Visual Studio。

您可以在记事本中做一些事情(我曾经在记事本中编写了一些 Web 服务,因为我没有可用的 VS),但最终您将希望利用 VS 中可用的工具。

于 2009-08-06T02:18:12.583 回答
1

我强烈建议您使用 Visual Studio(Microsoft 提供满足您需求的免费 Express 版本)。学习该语言的语法非常棒,但您必须能够在 VS 环境中工作才能在 C#(以及任何 .NET 语言)中真正取得成功。正确地做这件事并一起学习而不是稍后再尝试拼凑,对您更有好处。只有我自己的两分钱。

于 2009-08-06T02:26:50.680 回答
1

假设您要避免的事情是神奇地生成代码和可视化设计器,您可以打开 System.Windows.Forms 命名空间并开始针对 API 进行编码。从第一个示例开始,然后以编程方式添加按钮和文本框等等。您不必创建表单项目或与设计师一起工作,您只需在 VS 中“编写代码”并关闭所有魔法。

如果您正在寻找示例代码,您可能会考虑查看 F# 示例,例如位于

http://code.msdn.microsoft.com/fsharpsamples

对于一些基本控件的想法,您可以添加到表单中以执行基本的 UI 内容。

于 2009-08-06T02:47:26.840 回答
1

只是重复已经说过的话,再次没有不尊重,你不会在记事本中学习.NET。只是不太可能。您不仅没有生产力,而且您也不会学习行业中使用的工具、最佳实践以及其他有关 .NET 的重要因素。这不仅仅是坐下来编写代码。将自己限制在记事本上,就像限制自己每月只吃一顿饭:您缺乏保持良好步伐前进所需的营养。

利用可用的工具和资源。像那样限制自己是在后端踢球。

于 2009-08-06T02:53:12.993 回答
1

使用 sharpdevelop (Windows) 或 monodevelop (*nix)。两者都有 Windows.Form 支持。尽管它们提供的功能不如 VS,但它们至少可以帮助您入门。我从来没有使用过 VS Express 版本,所以我不知道它的限制是什么。

于 2009-08-06T03:09:12.623 回答
0

去下载一个快速版的 Visual Studio。我理解通过记事本彻底学习这一点的可能性,但是有了免费的 IDE,这没有任何意义。

于 2009-08-06T02:16:21.290 回答
0

如果您对 MS 或 VS.net 有意见,您可以尝试Sharpdevelop http://www.icsharpcode.net/OpenSource/SD/

上次我看它是 xcopy 可部署的 :)

于 2009-08-06T02:51:30.687 回答
0

我不知道在哪里可以找到教程,但方法非常简单:导入 System.Windows.Forms,从 Form 派生一个类,然后给它一个 .Show()。您的组件是该类的成员,可以使用它们各自的位置/大小属性进行定位。事件是通过委托处理的。

我确实看到了这种技术在哪里有用,尽管我会使用像样的 IDE 而不是记事本。.NET 实在太多了。知道如何动态构建表单会派上用场。

如果您正在寻找替代 IDE,请查看 icSharpCode 的 SharpDevelop。

此外,查看 JScript.NET 教程 - 该语言没有表单编辑器,因为根本不可能继承。但它仍然基于.NET,所以基本动作是一样的。这是一个体面的:

http://www.webreference.com/js/column117/

于 2009-08-06T03:39:14.710 回答
0

我知道奇怪的是,我还没有看到有人谈论 NAnt。

多年来,我在 TextPad 中开发,带有一些语法高亮,+ NAnt 来进行构建。现在它会更容易,因为你可以让你的 buildserver 为你准备一个适当的 msbuild (CC.NET + NAnt)。

我还了解了一些在 Visual Studio 中物理上无法做到的事情(当时是 .net 1.1)。绝对是一次很好的体验,我真的会推荐它。不过可能不适用于winforms,因为设计实际上对此很有用。

于 2009-08-17T03:36:20.577 回答
0

请注意,记事本甚至不等于 vi 更不用说 vim。

如果您想使用文本编辑器,那么您可以尝试一下,但我看不出使用记事本的意义。使用真正的文本编辑器,不一定是 vim/emacs,你可以选择一个不错的 gui 文本编辑器,比如 notepad++ 或 kate。

记事本甚至无法显示 unix 行尾(我认为)。

于 2010-11-19T14:31:56.070 回答
0

我是记事本用户。:) 我的电脑上没有安装 Visual Studio。

这就是我正在做的事情。

第一个你必须在环境变量上注册你的 .net 框架文件夹。路径或在 CMD 上运行这条线 path=%path%;(这是你的 .net 框架地址所在的位置)(ex path=%path%;C:\Windows \Microsoft.NET\Framework\v4.0.30319) 然后回车

第二编译单个记事本(另存为.cs),使用cmd定位文件的目标。然后。为多文件键入“csc nameOfCS.cs”。“csc ManinCsForname.cs classes.cs classes.cs”它将编译为 exe。更多命令。“csc /?”

可以使用 Visual Studio。但如果你想更熟悉 C# 和结构。或者可以在任何PC上制作系统。不使用任何 IDE。你可以做到这一点。

于 2015-09-10T23:56:59.157 回答
0

不使用记事本会有所帮助。Crimson Editor 或 TextPad 或其他具有行号、语法突出显示和许多您需要的功能。我确定记事本可能会遇到文件大小限制。

我只能从 Java 的角度完全回答 sans-IDE 元素。我有时使用 Crimson 编辑器、Java SDK、批处理文件和/或 ANT 或 Maven 完成了大量的 Java UI 开发。如果您开发通用的 UI 代码或动态执行相当数量的 UI 代码,则可以。如果您的工作涉及设计许多不同的特定表单(即具有许多客户表单且不会过多重复使用的屏幕),那么 IDE 的设计器功能非常有用。

但是,我发现 .NET IDE 开发有点令人沮丧,因为上面的 Java 开发模型。

于 2016-11-15T09:11:01.210 回答