一、代码结构

1)一个 C# 程序主要包括以下部分:

  • 命名空间声明(Namespace declaration)
  • 一个 class
  • Class 方法
  • Class 属性
  • 一个 Main 方法
  • 语句(Statements)& 表达式(Expressions)
  • 注释
  1. using System;
  2. namespace HelloWorldApplication
  3. {
  4. class HelloWorld
  5. {
  6. static void Main(string[] args)
  7. {
  8. /* 我的第一个 C# 程序*/
  9. Console.WriteLine("Hello World");
  10. Console.ReadKey();
  11. }
  12. }
  13. }

  在项目中可以通过“类视图”来查看结构。

2)注释

1、注释符的作用
  1)、注销
  2)、解释

2、c#的3种注释符
  1)、单行注释 //
  2)、多行注释 /*要注释的内容*/
  3)、文档注释 /// 多用来解释类或者方法

  • C#中#region和#endregion的用法:

折叠中间的代码块(折叠后的说明文字为#region后面的说明)

  • summary

输入三个杠的,如"///"用XML文件,将来调用这个类或方法时可以作为工具提示的

  1. /// <summary>
  2. /// 建立数据库连接.
  3. /// </summary>
  4. /// <returns>返回SqlConnection对象</returns>
  • 快捷键

  Ctrl + k + c 快速注释选中内容

  Ctrl + k + u 快速取消注选中的注释内容

二、命名空间

1)一个合名空间可以包含(如类、接口、委托等),而且 命名空间中也可以包含命名空间。

2)任何层次的对象的成员都可以使用成员运算符"."来引用,英文句点。

3)引用命名空间

  • 有时命名空间名字长,或层次较多的情况,用using引用
  • 如需要使用相同类时,解决方法是在引入命名空间时为其分配一个别名
  1. using na =A
  2.  
  3. using nb=B;

4) using static 指令 ,可以引入目标命名空间下的静态类型。在代码中访问静态类的成员时就不必输入类型的名称。面是直接输入静态类型的成员名称就可以了。如下面的区别,如引入了Console类,直接输入成员名字就可了,不必输入类别。

  1. using System;
  2.  
  3. console writeLine(....);
  1. using System;
  2. using static System.Console;
  3.  
  4. namespace MyApp
  5. {
  6. class Program
  7. {
  8. static void Main(string[] args)
  9. {
  10. // 直接调用Console类的WriteLine方法
  11. WriteLine("可以直接调用静态方法。");
  12. // 直接调用Console类的ReadKey方法
  13. ReadKey();
  14. }
  15. }
  16. }

三 、Main入口点

代码从入口点开始执行

入口点有以下特点:

1)必须声明一个类中

2)必须声明为静态方法,加上static关键字。

3)可以是void,不返回结果;也可以返回一个整数int,对于正常执行的应用程序,应返回为0,只有这两种类型。

4)名字必须是Main,首字母 为M。

当有多个Main方法,需要选择一个入口点,在【项目】->【项目名称->属性】命令打开项目属性窗口。另一个方法是在“解决方案资源管理器”窗口中右击项目名称节点 。弹出菜单 中选择【属性】。

四 、变量与常量

1、变量

1) 可以用default关键字来赋默认的值 ,如int x=default(int);             // x 的值 为0

2)生命周期:变量暂存于内存中,当程序退出会销毁。

3)变量允许代码中修改

4)使用关键字命名时前面加“@”,不介意这样命名;不能使用数字开头命名。

string aaa = "你好123";
Label1.Text = aaa.Length.ToString();  //结果5
Label2.Text = System.Text.Encoding.Default.GetBytes(aaa).Length.ToString();  //结果7

String.Empty、NULL与""三者的区别

String.Empty和""是一样的,都是空,习惯用string.empty。 Null和他们就有区别了,就是没有值,也没分配地址,此处可以理解成什么都没有。

2、常量

基本语法参考

1)常量使用const关键字来定义

2)常量值不能修改,变量的值不能赋值给常量

3)常量是可以直接访问的,不像变量需要实例化。

4)后缀和前缀

数值常数有:整型常数、浮点常数;

整数常量可以是十进制、八进制或十六进制的常量。前缀指定基数:0x 或 0X 表示十六进制,0 表示八进制,没有前缀则表示十进制。

整数常量也可以有后缀,可以是 U 和 L 的组合,其中,U 和 L 分别表示 unsigned 和 long。后缀可以是大写或者小写,多个后缀以任意顺序进行

整型常数的后缀有:u或U(unsigned)、l或L(long)、u/U与l/L的组合(如:ul、lu、Lu等)。例:100u; -123u; 0x123l;
浮点常数的后缀有:f或F(单精度浮点数)、l或L(长双精度浮点数)。(注:因浮点型常数总是有符号的,故没有u或U后缀)。例:1.23e5f; 1.23l; -123.45f;

4)字符常量:在 C# 中有一些特定的字符,当它们的前面带有反斜杠时有特殊的意义,可用于表示换行符(\n)或制表符 tab(\t)。详细参考基本语法参考

5)@"":让转移字符"\"保持原意,不要转义。

字符常量

参考具体表格详细介绍

1)C# string怎么换行

在要换行的地方输入“\r\n”即可换行,例如:

string a = "我是第一行\r\n" + "我是第二行" 。

3、类型转换

参考来自

Convert.ToInt32(变量)//转换成整型

Convert.ToDecimal();要转换的双精度浮点数。

强制转换

  1. namespace TypeConversionApplication
  2. {
  3. class ExplicitConversion
  4. {
  5. static void Main(string[] args)
  6. {
  7. double d = 5673.74;
  8. int i;
  9.  
  10. // 强制转换 double 为 int
  11. i = (int)d;
  12. Console.WriteLine(i);
  13. Console.ReadKey();
  14.  
  15. }
  16. }
  17. }

C#中ToString()格式详解

在很多对象显示为字符串的时候都会使用到ToString中的格式化,由于以前没怎么注意到这个问题,想总结一下各个基础结构对象的格式化 Int.ToString(format):

4、C# 可空类型(Nullable)

参考来自

C# 单问号 ? 与 双问号 ??

? : 单问号用于对 int,double,bool 等无法直接赋值为 null 的数据类型进行 null 的赋值,意思是这个数据类型是 NullAble 类型的。

Null 合并运算符( ?? )

如果第一个操作数的值为 null,则运算符返回第二个操作数的值,否则返回第一个操作数的值

五、运算符

基本语法参考来自

三类运算符

1、一元运算符:只有一个操作数:自增运算符、自减运算符
2、二元运算符:只有两个操作数参与运算的运算符
3、三元运算符,只有一个“?”
<判断条件>?<条件为真时的表达式>:<条件为假时的表达式>

自增运算符、自减运算符

++i:是在参与 其他运算之前加1

i++:是参与运算后加1

自减类似。

位运算符

二进制位之间的运算,以下五种常用的运算方式

1)按位与  &:必须二者同时为真时,结果才为1,否则为0.

2)按位或  |:只要有一个是真,结果就为真

3)左移   <<:将二进制都向左移若干位。

4)右移   >>:将二进制都向右移若干位。

5)异或  ^  :只有一个为真时才为真,否则为0.

比较运算符

比较运算符的用途就是用来比较两个表达式,结算结果为布尔类型,True,False

>,<,==,>=,<=

&&,||

六、流程控制

按两次Tab,自动出来代码块

分支结构

1)if语句

2)switch:一个固定值,判断用 ==

break 语句 终止 loop 或 switch 语句,程序流将继续执行紧接着 loop 或 switch 的下一条语句。可以完成 即时跳循环的功能 
continue 语句 引起循环跳过主体的剩余部分,立即重新开始测试条件。不跳出整个循环,只是跳过某一轮循环。

循环往复

1)for语句

  1. for ( init; condition; increment )
  2. {
  3. statement(s);
  4. }

下面是 for 循环的控制流:

  1. init 会首先被执行,且只会执行一次。这一步允许您声明并初始化任何循环控制变量。您也可以不在这里写任何语句,只要有一个分号出现即可。

  2. 接下来,会判断 condition。如果为真,则执行循环主体。如果为假,则不执行循环主体,且控制流会跳转到紧接着 for 循环的下一条语句。

  3. 在执行完 for 循环主体后,控制流会跳回上面的 increment 语句。该语句允许您更新循环控制变量。该语句可以留空,只要在条件后有一个分号出现即可。

  4. 条件再次被判断。如果为真,则执行循环,这个过程会不断重复(循环主体,然后增加步值,再然后重新判断条件)。在条件变为假时,for 循环终止。

2) foreach

适合枚举如数组、列表、集合之类的数据结构的元素,事先也不必准确知道元素的个数。

3)whil语句

C# 一、语法结构、注释、命名空间、Main入口点、变量与常量、运算符、流程控制(循环)的更多相关文章

  1. 逆向课程第二讲,寻找main入口点

    逆向课程第二讲,寻找main入口点 一丶识别各个程序的入口点 入门知识,识别各个应用程序的入口点 (举例识别VC 编译器生成,以及VS编译生成的Debug版本以及Release版本) 1.识别VC6. ...

  2. Python基础-1 python由来 Python安装入门 注释 pyc文件 python变量 获取用户输入 流程控制if while

    1.Python由来 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚 ...

  3. 【Java】流程控制 - 顺序结构、 选择(分支)结构(单分支、双分支、多分支、嵌套)、循环结构(for、while、do...while)、跳转语句(break、continue)

    流程控制语句结构 文章目录 流程控制语句结构 一. 顺序结构 1. 输出语句 2. 输入语句 3.code 二.复合语句 三. 分支结构 1. 条件判断 1.单分支结构 2.双分支结构 3.多分支结构 ...

  4. Python基础部分:5、 python语法之变量与常量

    目录 python语法之变量与常量 一.什么是变量与常量 1.什么是变量 2.什么是常量 二.变量的基本使用 1.代码中如何记录事物状态 2.变量使用的语法结构与底层原理 3.变量名的命名规范 4.变 ...

  5. PC逆向之代码还原技术,第二讲寻找程序入口点

    PC逆向之代码还原技术,第二讲寻找程序入口点 一丶简介 程序逆向的时候.我们需要知道程序入口点.动态分析的时候以便于看是什么程序编写的. 比如VC++6.0 我们可以写一个程序测试一下 我们写一段代码 ...

  6. day_4流程控制之分支结构循环结构及for循环

    复习一下昨天的内容 1:变量的命名规范 只能由数字 字母 及下划线组成 不能以数字开头 不能与系统关键字重名 _开头有特殊含义 __开头__结尾的变量是魔法变量 支持大小驼峰 ,但建议使用下划线连接语 ...

  7. java基础语法2-运算符与流程控制

    关键字-标识符-常量和变量-运算符-流程控制-方法-数组 5 运算符 算术运算符Arithmetic Operators 赋值运算符Assignment Operators 比较运算符Compare ...

  8. php总结1 ——php简介、工作原理、运行环境、文件构成、语法结构、注释

    1.1 PHP  超文本预处理程序.实际就是制作网站的脚本程序 1.2 运行环境: wamp——windowns+apache+mySQL+php    常用于开发.学习和研究 lamp ——linu ...

  9. 前端-CSS-初探-注释-语法结构-引入方式-选择器-选择器优先级-01(待完善)

    目录 CSS(Cascading Style Sheet) CSS注释 CSS语法结构 CSS的三种引入方式 选择器 伪类.伪元素选择器速查 CSS选择器优先级***** 选择器相同的情况下 选择器不 ...

随机推荐

  1. atitit.编程语言会形成进化树--哪些特性会繁荣??通才还是专才的选型 现代编程语言的特性总结

    atitit.编程语言会形成进化树--哪些特性会繁荣??通才还是专才的选型 现代编程语言的特性总结 1.  有一种观点,编程语言就像物种,会形成进化树,有的分支会死掉. 多年之后,你觉得语言会演化成什 ...

  2. Quartus调用Modelsim SE避免重复编译Altera器件库的方法

    最近用Quartus 15.0配合Modelsim SE 10.4的64位版本,简直就是闪电一般的仿真速度.但是众所周知,SE版本最大的问题就是每次由Quartus自动调用时,都要重新编译所使用的器件 ...

  3. 相似微信的ChattingUi

    先看主页面布局 activity_imitate_weixin_main.xml <RelativeLayout xmlns:android="http://schemas.andro ...

  4. zend server 和zend studio 最佳实践

    1.zend server 安装好后需要重启下.无论是win还是mac..win不重启组件不能用.mac 不重启守护进程是离线的 2.修改apache配置.的根目录.到zendstudio的工作空间 ...

  5. windows下wim配置成IDE

    1.配置文件_wimrc set fileencodings=utf-,ucs-bom,cp936,big5 set fileencoding=utf- source $VIMRUNTIME/vimr ...

  6. lua文件读写

    lua里的文件读写模型来自C语言,分为完整模型(和C一样).简单模型. 1.简单模型 io.input([file])  设置默认的输入文件,file为文件名(此时会以文本读入)或文件句柄(可以理解为 ...

  7. st16c554

    /* * st16c554.c * * TWO ST16C554 driver for AMCC PPC405EP * * Author: Li Zhi You/Zhu jiang <godis ...

  8. PHP——面向对象

    <body> <?php //类调用用:: //对象调用用-> class Dog1//定义类 { //成员属性(变量) var $name; var $age; var $p ...

  9. TF Boys (TensorFlow Boys ) 养成记(三): TensorFlow 变量共享

    上次说到了 TensorFlow 从文件读取数据,这次我们来谈一谈变量共享的问题. 为什么要共享变量?我举个简单的例子:例如,当我们研究生成对抗网络GAN的时候,判别器的任务是,如果接收到的是生成器生 ...

  10. AD smart pdf 中文丢失

    Altium Designer将原理图通过smart pdf导出,原理图中的中文丢失了. 将原理图中的所有中文字体改为宋体即可. 百度知道上的也有说: 打开软件后,点击左上角的[DXP]→[Prefe ...