0

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

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

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

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

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

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

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

4

6 回答 6

8

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

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

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

于 2009-01-21T11:02:32.230 回答
4

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

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

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

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

于 2009-01-21T11:11:41.773 回答
3

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

于 2009-01-21T11:00:53.217 回答
3

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

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

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

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

于 2009-01-21T11:14:38.990 回答
1

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

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

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

于 2009-01-21T11:12:03.037 回答
0

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

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

“当我开始习惯对象的想法时......”,简单地说:C# 是一种“强类型安全语言”,因此应该 - 必须告诉你“你正在进入”什么,否则留下使用 PHP 或 C 等“弱或无类型安全语言”,这并不意味着不好,只是意味着你的工作要确保,正如我告诉我的学生:“如果你需要一个 INT,那么定义一个 INT 而不是 LETTING编译器会为你做这件事,否则你会有很多坏的错误”,或者换句话说,在设计一个软件之前做你的功课。

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

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

欢呼!!!(PS:80年代以来的软件开发人员)

于 2014-02-16T02:36:52.440 回答