C#学习笔记(一)-- 入门的困惑

笔记

简单的我就不写了,主要写一下C#学习中的要点和难点。1.由HelloWorld开始先看一段基本上每本C#书里都会讲到的例子,很老土。using System;namespace test{     class Class1     {         [STAThread]         static void Main(string[] args)         {              System.Console.WriteLine("Hello,World!");         }     }}先引用一个命名空间System,再定义一个自己的命名空间test,里面有一个类Class1,属性[STAThread],一个入口的Main方法,注意:跟JAVA不一样,Main首名母是大写,Main必须是static的。不然怎么开始呢?难倒要实例化才行?哈哈,定义为static就是把它放在椎里。这里规举。 2.命名空间再来看看System.Console.WriteLine("Hello,World!");输一名语名到控制台。调用System命名空间里的Console类的WriteLine方法。System命名空间是前面我们已经引用了的using System; 你也可以在引用的时候改个名字output,那么在调用的时候就是output.Console.WriteLine("Hello,World!");试一试:using output=System; namespace test{     class Class1     {         [STAThread]         static void Main(string[] args)         {              output.Console.WriteLine("Hello,World!");         }     }}运行报错:F:\mydoc\Visual Studio Projects\test\Class1.cs(7): 找不到类型或命名空间名称“STAThread”(是否缺少 using 指令或程序集引用?)嘿嘿,是[STAThread]惹的祸。干掉它。再试,搞定。[STAThread]是Single  Thread  Apartment单线程套间的意思。是一种线程模型。其它的好像还是MTA(多线程套间)、Free  Thread(自由线程)。这个属性要加在主  Main  上。这个属性只在  Com  Interop  所用,如果全部是  managed  code  则无用。简单的说法:[STAThread]指示应用程序的默认线程模型是单线程单元 (STA)。启动线程模型可设置为单线程单元或多线程单元。如果未对其进行设置,则该线程不被初始化。也就是说如果你用的.NET Framework,并且没有使用COM Interop,一般不需要这个Attribute。 明白了吧。 注意,using指令是用于命名空间的。变化着用一下,也可以为类创建别名:using output=System.Console; namespace test{     class Class1     {         //[STAThread]         static void Main(string[] args)         {              output.WriteLine("Hello,World!");         }     }}这样也行。。。 命令空间是可以嵌套的。如:using System; namespace test{     namespace t1     {         class Class1         {              static void Main(string[] args)              {                   System.Console.WriteLine("t1.Class1");              }         }     }      namespace t2     {         class Class2         {              static void Main(string[] args)              {                   System.Console.WriteLine("t2.Class2");              }         }     }}运行,报错。我是故意的(台下:大骗子)。J不要扔砖头啊。不要这么容易就放弃嘛,要执着。看错误F:\mydoc\Visual Studio Projects\test\Class1.cs(9): 程序“F:\mydoc\Visual Studio Projects\test\obj\Debug\test.exe”定义了不止一个入口点:“test.t1.Class1.Main(string[])” 因为你的命名空间test里定义了二个Main方法,所以呢,不用我说了吧。using System; namespace test{     namespace t1     {         class Class1         {              static void Main(string[] args)              {                   System.Console.WriteLine("t1.Class1");                   System.Console.WriteLine(t2.Class2.MyFunction());              }         }     }      namespace t2     {         class Class2         {              public static string MyFunction()              {                   return "t2.Class2";              }         }     }} 外部程序引用的时候就是这样:using test.t1;或using test.t2; 入门就这些问题。打开Visual Studio .NET 2003 命令提示键入ILDASM,这个程序可以查看编译后的元数据。 网上查一下Reflector这个软件。干什么用的。反编译呀。。。。寒。

时间: 2024-08-30 04:11:22

C#学习笔记(一)-- 入门的困惑的相关文章

Nodejs学习笔记之入门篇_node.js

分享第一篇,关于 NodeJS -- Javascript 的常用知识以及如何从 Javascript 开发者过渡到 NodeJS 开发者(不会介绍具体的框架).在读本文前,希望你对 javascript 有一些初步的认识. Javascript 是一门原型模型的解释型语言.解释型将在后面的 NodeJS 里面讨论,原型链是 ES6 之前的 Javascript 的面向对象的实现方式之一,在 ES6 中支持的 class 增加了一种新的实现方式.在 Javascript 里面所有东西都是对象,包

jQuery学习笔记之入门_jquery

最近在学习jQuery,在网上看到有几篇关于jQuery的文章,写的不错转载过来跟大家分享一下: 一.JQuery是什么 JQuery是什么?始终是萦绕在我心中的一个问题: 借鉴网上同学们的总结,可以从以下几个方面观察. 不使用JQuery时获取DOM文本的操作如下: document.getElementById('info').value = 'Hello World!'; 使用JQuery时获取DOM文本操作如下: $('#info').val('Hello World!'); 嗯,可以看

Struts2学习笔记(1)-入门教程_java

什么是Structs2?它就是在Struts1的基础上演化而来的,是一种MVC模式的框架,其实它的功能很简单,就是将View和逻辑处理层分开.本人才疏学浅,以前都是用Spring做项目,由于要毕业,所以需要进行转行(暂且这么说吧),公司都是用的Structs框架,木有办法,从头开始学吧! 所需软件-Eclipse.TomCat7.0.Struts-2.3.1.2(源码自己下载),下面以具体小项目来说明. 首先是Struts2的工作原理:首先Tomcat对用户所输入的URL进行解析,将其中的项目名

Bash脚本学习笔记快速入门篇

脚本安全 我的所有bash脚本都以下面几句为开场白:  代码如下 复制代码 #!/bin/bash set -o nounset set -o errexit 这样做会避免两种常见的问题:     引用未定义的变量(缺省值为"")     执行失败的命令被忽略 需要注意的是,有些Linux命令的某些参数可以强制忽略发生的错误,例如"mkdir -p" 和 "rm -f". 还要注意的是,在"errexit"模式下,虽然能有效的

HTML5 video标签(播放器)学习笔记(一):使用入门

 HTML5 video标签(播放器)学习笔记(一):使用入门 近有在学习html5中video标签(播放器)的使用,这里做一些学习笔记,方便自己查阅和记录,本文是第一篇,将介绍的是使用该标签初始化该做的哪些工作. 网上的教程其实也不少了 w3cschool里面的最为简单而详细,那么这几介绍的是一些更为直接的应用. 本文目录: 1.使用标签 2.加上一些必要参数 3.自动播放或自动加载 4.规范播放器 第一步:使用标签 使用的方法很简单,就是一句代码: 代码如下: <video></vi

Swift学习笔记(2)网络数据交换格式(XML,JSON)解析 [iOS实战 入门与提高卷]

Swift学习笔记(2)网络数据交换格式(XML,JSON)解析 参考书籍及资源:iOS实战 入门与提高卷 关东升 参考书籍地址 用NSXML来解析XML文档 用TBXML来解析XML文档 用NSJSONSerialization来解析JSON文档 目录 Swift学习笔记2网络数据交换格式XMLJSON解析 目录 用NSXML来解析XML文档 示例文档Notesxml 创建XMLParser类 调用与运行结果 用TBXML来解析XML文档 准备工作 创建XMLParser类 调用与运行结果 用

整理Javascript基础入门学习笔记_javascript技巧

了解什么是变量? 变量是用于存储信息的容器 变量的声明 语法: var  变量名变量名 = 值; 变量要先声明再赋值 变量可以重复赋值变量的命名规则 变量必须以字母开头: 变量也能以$和_符号开头(不过我们不推荐这么做): 变量名称对大小写敏感(a和A是不同的变量). 1.语句 语句以一个分号结尾:如果省略分号,则由解析器确定语句的结尾. 有个好的编码习惯,都要以 ; 结尾 2.数据类型 在JavaScript中,一段信息就是一个值(value).值有不同的类型,大家最熟悉的类型是数字.字符串(

简单入门——深度学习笔记(Part I)

更多深度文章,请关注:https://yq.aliyun.com/cloud 作者介绍:Deepak Shah Deepak Shah毕业于德克萨斯奥斯汀分校,徒步旅行爱好者,目前是深度学习\数据科学实习生,研究领域专注于深度学习.编程.金融等方面. 个人主页:http://www.deepakvshah.com/ Medium论坛:https://medium.com/@dvshah13 Github论坛:https://github.com/Dvshah13  笔记分为两个部分,本文是笔记P

简单入门——深度学习笔记(Part II)

更多深度文章,请关注:https://yq.aliyun.com/cloud 作者介绍:Deepak Shah Deepak Shah毕业于德克萨斯奥斯汀分校,徒步旅行爱好者,目前是深度学习\数据科学实习生,研究领域专注于深度学习.编程.金融等方面. 个人主页:http://www.deepakvshah.com/ Medium论坛:https://medium.com/@dvshah13 Github论坛:https://github.com/Dvshah13  笔记分为两个部分,本文是笔记P