【问题标题】:C# .net Mnemonics and use in generalC# .net 助记符和一般使用
【发布时间】:2009-01-21 10:51:40
【问题描述】:

我刚开始使用 C#,在我看来,Microsoft 将他们的新系统称为 .Net,因为您必须使用 Internet 查找所有内容以找到有用的函数以及他们将其隐藏在哪个类中。

对我来说,要求编写和设计为独立的过程/函数(非实例化静态对象)使其类不能同时用作它们的命名空间似乎是荒谬的。

这就是为什么我不能使用 Write 或 WriteLine 而不是 Console.WriteLine ?

然后当我开始习惯我使用的对象(如字符串)知道如何执行操作时,我习惯于使用外部函数来实现(如上、下、子字符串等)它们会改变数字规则,由于某种原因,数字不知道如何将自己从一种数字类型转换为另一种,而是必须调用 Convert 类静态函数将 double 更改为 int 和 Math 类静态函数以实现舍入和截断.. 这很快将您的简单(其他语言)语句转换为 C# 中的大量字符行。

它似乎也沉迷于强类型,这在某种程度上干扰了我编码时的思维过程。我知道类型安全可以减少错误,但我认为它也会增加复杂性,有时是不必要的。如果您可以根据需要选择上下文驱动的类型,而无需显式的 Casting、Converting 或 ToStringing,这在 C# 中似乎是完成任何事情的基本必要条件,那将是很好的。

那么... 甚至可以在记事本中编写有意义的代码并在没有 Internet 访问权限的情况下使用 cl 吗?如果不求助于自动完成和网络访问,您会使用什么参考书?

有什么建议可以让您更自然地理解这种语言并更自然地使用它吗?

【问题讨论】:

  • 你用什么语言编码?
  • 我使用 Perl,偶尔使用 C/C++ 和 PHP,并试图精通 C#

标签: c# syntax static procedures


【解决方案1】:

我认为您有些受苦,因为多年来您习惯于以一种方式工作,现在必须花时间让自己在新平台中使用/开发感到舒适。

我不同意你的观点,MS 在字符串知道如何将自己转换为另一种类型,而其他数据类型(如整数)不知道这一点上并不一致。 这不是真的,因为字符串自己也不知道应该如何将它们转换为另一种类型。 (您可以使用 Convert 类将类型转换为其他类型)。 然而,确实 .NET 中的每种类型都有一个 ToString() 方法,但是,您不应该依赖该方法将您拥有的任何内容转换为字符串。

我认为您以前从未使用过 OO 语言,因此,您在范式转换方面遇到了一些困难。 这样想:一切都与责任和行为有关。一个类(如果设计得好)负责做一件事,并且把这件事做好。

【讨论】:

    【解决方案2】:

    没有任何借口可以使用记事本编写现代语言。 SharpDevelop 或 Visual C# Express 提供了以高效方式使用 C# 的功能。

    不,由于复杂性,不使用互联网作为信息来源也不是一个好的选择。

    您可以购买一本以结构化方式向您介绍语言概念的书,但要获得最新信息,就需要互联网。

    是的,与任何其他语言一样,C# 也有缺点。我只能给你建议以适应这种语言。在那之后,许多缺点变得可以理解,即使其中一些并没有变得不那么烦人。如果您想了解某些语言结构如何工作或如何更有效地解决特定问题,我建议您使用示例代码提出清晰、直接的问题。这样更容易回答这些问题。

    【讨论】:

      【解决方案3】:

      对于记事本,我没有任何有用的建议,但是我建议您使用免费的 IDE 之一,Microsoft 的 Express EditionsSharp Develop。 IDE 将加速语言的探索,此时您可以切换回记事本。

      【讨论】:

        【解决方案4】:

        阅读您的帖子时,我认为您以前主要使用 C 或动态语言。也许 C# 对你来说只是一个错误的选择,IronPython、F# 和一堆其他具有必要功能的语言(比如类之外的函数等)

        我不同意你对一致性的看法。事实上,.NET 的某些组件之间存在细微的不一致,但大部分 FW 是非常一致和可预测的。

        强类型是低缺陷数的一个重要因素。动态类型在小型/中型项目(如脚本等)中表现良好。在或多或少复杂的程序中,动态可能会引入很多复杂性。

        关于互联网/自动完成 - 我几乎无法想象任何不需要大量知识资源的 .NET 大小的技术。

        【讨论】:

          【解决方案5】:

          使用记事本在 C# 中编程就像买一辆法拉利在土路上行驶。

          至少使用 Visual Studio Express Edition。对于您所写的内容,我了解您来自非 OO 背景,请尝试学习 OO 概念并尝试使用它。您最终将了解为 .Net 做出的大多数设计决策。

          http://en.wikipedia.org/wiki/Object-oriented_programming

          【讨论】:

            【解决方案6】:

            哦,男孩,我从哪里开始(这将是一个很长的帖子哈哈哈),好吧,让我们一点一点开始吧: “Microsoft 将他们的系统称为 .NET,因为您必须使用 Internet……”,之所以称为 .NET,是因为 MICROSOFT LANGUAGUES(现在还有一些其他语言也像 Phyton 和 Ruby 等)可以调用任何库或 DLL,例如,您可以“NET”(网络或调用)一个在 Visual Basic、F#、C++ 中从 WITHIN C# 或您也可以调用(或“.NET”)C# 库的任何语言中构建的 DLL。好的一个下来!

            下一个:“要求....让他们的类不作为他们的命名空间似乎是荒谬的”,这是因为命名空间可以有你想要的任意数量的类,你的问题是: “这就是为什么我不能使用 Write 或 WriteLine 而不是 Console.WriteLine ?”。 原因是:“Console”(System.Console 是程序开头的“Using”语句)命名空间是“Write”和“WriteLine”存在的地方!!(您也可以完全限定它(或“调用它”) ")。(在我看来,这一切都需要学习 C# 语法),好的 NEXT:

            “当我开始习惯对象的想法时......”,简单的话: C# 是一种“严格类型安全的语言”,因此应该 - 必须告诉您“您要进入的内容”,否则请使用 PHP 或 C 等“弱或没有类型安全的语言”。这并不意味着它不好只是意味着你的工作是确保,正如我告诉我的学生:“如果你需要一个 INT,然后定义一个 INT,让编译器为你做这件事,否则你将有很多错误”,或者换句话说,你的设计软件之前的功课。

            注意:C# 是隐式类型安全语言,所以如果你想你可以将它作为不安全的语言运行,那么从那时起你的工作就是确保,所以当错误在运行时到达时不要抱怨(因为懒惰)(和很多时候客户已经在使用你的糟糕软件了)。

            ...最后但并非最不重要的一点:你想用记事本射击自己吗? Studio Express 是免费的,甚至数据库 SQL SERVER 也是免费的!!,除非您为一家公司工作,否则我将要求 PRO 等。所有“额外”的东西都是给大公司、团队等的,你可以用免费版本做 99% 的东西(一旦你想扩展到分布式软件或大型项目,你仍然可以购买更新到完整版本,或者如果您的软件大受欢迎,例如:如果您需要每秒从数据库中获得数百万次查询或命中,或者 100 人正在处理同一个项目(代码),但大多数时候只有 2 或 3 个“普通”开发人员在家里或小办公室工作,免费的就足够了!!)

            谢啦!!! (PS:80年代以来的软件开发者)

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2015-06-26
              • 1970-01-01
              • 2011-08-24
              • 2013-09-16
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多