C#.net助记符和一般用法

C#.net助记符和一般用法,c#,syntax,static,procedures,C#,Syntax,Static,Procedures,我刚从C#开始,对我来说,微软似乎把他们的新系统命名为.Net,因为你必须使用互联网查找所有有用的函数以及它们存储在哪个类中 在我看来,要求编写并设计为独立的过程/函数(非实例化静态对象)使其类不作为名称空间使用似乎是荒谬的 这就是为什么我不能使用Write或WriteLine而不是Console.WriteLine 然后,当我开始习惯于我使用的对象(如字符串)知道如何执行我习惯于使用外部函数实现的操作(如上、下、子字符串等)时,它们会用数字更改规则,数字不知如何从一种数字类型转换为另一种数字类

我刚从C#开始,对我来说,微软似乎把他们的新系统命名为.Net,因为你必须使用互联网查找所有有用的函数以及它们存储在哪个类中

在我看来,要求编写并设计为独立的过程/函数(非实例化静态对象)使其类不作为名称空间使用似乎是荒谬的

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

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

它似乎还沉迷于强类型,这在某种程度上干扰了我编写代码时的思维过程。我知道类型安全性减少了错误,但我认为它也增加了复杂性,有时是不必要的。如果您可以在不使用显式强制转换或转换或toString的情况下选择上下文驱动的类型,这将是一件好事。在C#中,这似乎是完成任何事情的基本必要条件

所以。。。甚至可以在记事本中编写有意义的代码,在没有互联网接入的情况下使用cl吗?在没有自动完成和网络访问的情况下,您会使用哪本参考书


有没有什么建议可以帮助你更自然地使用这门语言

对于记事本,我没有什么有用的建议,但是我建议您使用免费的IDE、Microsofts或。
IDE将加速语言的探索,在这一点上,您可以切换回记事本。

我认为您在过去几年中习惯于以一种方式工作,现在必须花时间让自己适应在新平台上使用/开发

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

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

没有理由用记事本编写现代语言代码。SharpDevelop或Visual C#Express提供了高效使用C#的功能

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

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

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

用c语言编程,使用记事本就像买一辆法拉利在土路上行驶一样

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


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

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

强类型是导致低缺陷计数的一个重要因素。动态类型在小型/中级项目(如脚本等)中很好地发挥作用。在或多或少复杂的程序中,动态性会带来很多复杂性


关于internet/autocomplete,我很难想象任何一种.NET大小的技术都不需要大量的知识来源

哦,孩子,我该从哪里开始呢(这将是一篇很长的文章哈哈哈),好吧,让我们一点一点地说: “微软之所以称他们的系统为.NET是因为你必须使用INTERNET…”,之所以称为.NET是因为微软的语言套件(现在还有其他一些语言,如Phyton和Ruby等)可以调用任何库或DLL,例如你可以“NET”(网络或调用)一个用Visual Basic、F#构建的DLL,C++中的C语言或任何语言,也可以调用(或.NET)C语言库。好的,一个下来

下一个问题:“要求……让它们的类不作为名称空间使用似乎是荒谬的”,这是因为名称空间可以有您想要的任意多个类,您的问题是: “这就是为什么我不能使用Write或WriteLine而不是Console.WriteLine?”。 原因是:“Console”(System.Console)是“Using”的