一、代码结构

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

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

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

2)注释

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

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

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

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

  • summary

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

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

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

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

二、命名空间

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

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

3)引用命名空间

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

using nb=B;

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

using System;

console writeLine(....);
using System;
using static System.Console; namespace MyApp
{
class Program
{
static void Main(string[] args)
{
// 直接调用Console类的WriteLine方法
WriteLine("可以直接调用静态方法。");
// 直接调用Console类的ReadKey方法
ReadKey();
}
}
}

三 、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();要转换的双精度浮点数。

强制转换

namespace TypeConversionApplication
{
class ExplicitConversion
{
static void Main(string[] args)
{
double d = 5673.74;
int i; // 强制转换 double 为 int
i = (int)d;
Console.WriteLine(i);
Console.ReadKey(); }
}
}

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语句

for ( init; condition; increment )
{
statement(s);
}

下面是 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.软件仪表盘(8)--os子系统--资源占用监测

    Atitit.软件仪表盘(8)--os子系统--资源占用监测 CPU使用 内存使用 磁盘队列 任务管理器 网络速度 插件列表( 资源管理器插件,浏览器插件,360optim) 启动项管理  (350) ...

  2. Google 商店:您的应用静态链接到的 OpenSSL 版本有多个安全漏洞。建议您尽快更新 OpenSSL

    安全提醒 您的应用静态链接到的 OpenSSL 版本有多个安全漏洞.建议您尽快更新 OpenSSL. 在开头为 1.0.1h.1.0.0m和 0.9.8za的 OpenSSL 版本中这些漏洞已得到修复 ...

  3. 03、矢量图形查询工具(Symbol Unicode)

    目前的软件开发中,很多地方都使用到了矢量图标,在 Metro app 的开发中,可以使用 Windows 系统图标(02.Universal app 中按钮图标使用 ),包括 Segoe UI Sym ...

  4. Ubuntu 15.04 开启远程桌面

    1.安装Xrdp Windows远程桌面使用的是RDP协议,所以ubuntu上就要先安装Xrdp,终端命令行输入安装: sudo apt-get install xrdp vnc4server xba ...

  5. USB转TTL 下载线 线序定义

    产品名称:USB转TTL 下载线 长度       :1米 芯片       :PL2303HX.PL2303TA. 线序定义红+5V, 黑GND, 绿TXD,白RXD

  6. 除去Scala的糖衣(13) -- Default Parameter Value

    欢迎关注我的新博客地址:http://cuipengfei.me/ 好久没有写博客了,上一次更新竟然是一月份. 说工作忙都是借口,咋有空看美剧呢. 这半年荒废掉博客说到底就是懒,惯性的懒惰.写博客这事 ...

  7. CI框架中 类名不能以方法名相同

    昨天晚上一个坑爹的问题折腾了我一晚上,首先我来说下我的代码,我建立了一个index的控制器然后呢  在控制器里有一个index的方法.页面模板都有. if ( ! defined('BASEPATH' ...

  8. [android] AndroidManifest.xml - 【 manifest -> application】

    语法: <application android:allowTaskReparenting=["true" | "false"] android:back ...

  9. 关于Unity中的新手编码技巧

    写代码遇到报错,问题怎么办?怎么查看unity代码的接口?函数参数不记得了怎么办? 解决方法: 1.选择不懂的函数或类,按F12,跳转到代码的定义,自己去看就可知道了. 2.有的时候,选择一个函数,按 ...

  10. Applet是java的自动执行方式(这是它的优势,主要用于HTML)

    进度条:ProgressBar. JcomboBox:下拉菜单:在AWT中同类组件是choice. JlistPanel:选择列表 BorderPanel:设置边框 JsplitPanel:可将容器分 ...