写在本文前面的话,最近一直在自学C#,视频看了不少,案例demo也敲了不少,但局限于新生事物的自然抗拒性,加上自律等各种因素吧,效果很差。本着有问题就找原因的思路,发现还是基础太差,被网上各种资料迷惑。所以才有了接下来的C#图解教程学习总结。打算以此书为地基,梳理、总结、扩展,以递归方式不断重复。
using System; //告诉编译器这个程序使用System命名空间的类型
namespace Simple //声明一个新命名空间,名称为Simple,新命名空间包括紧挨着的大括号内所有内容
{
class Program //声明一个新的类类型,名称为Program
{
static void Main() // 声明一个名称为Main的方法作为类Program的成员
{
Console.WriteLine("hello world");// Main的方法体,只包含一个单独的语句
}
}
}
定义:标识符是一种字符串,用来命名如变量、方法、参数和许多后面将要阐述的其他程序结构之类的东西。
使用规则:
标识符区分大小写,MYvar和myvar为不同的标识符
建议使用特定大小写约定创建标识符,比如Pascal大小写风格。
连续成标识符的每个单词都首字母大写,其余小写,比如ThreeNumber.
在成员字段命名中,有两个公共约定:
用来定义C#语言的字符串记号。
关键字不能被用作变量名或任何气啊形式的标识符,除非以@字符开始
所有C#关键字全部都由小写字母组成,但是.NET类型名使用Pascal大小写约定
上下文关键字是仅在特定的语言结构中充当关键字的标识符,但在其他地方代码,可以被当作标识符。
每个C#程序必须有一个类带有Main方法(函数)。
每个C#程序的可执行起始点在Main中的第一条指令。
Main必须首字母大写
Main的最简单形式如下:
static void Main()
{
更多语句
}
程序中的空白指的是没有可视化输出的字符,空白字符包括:空格、制表符、换行符、回车符。
//很好的格式
Main()
{
Console.WriteLine("Hello world");
}
//连在一起
Main(){Console.WriteLine("Hello XX");}
语句是描述一个类型或告诉程序去执行一个动作的一条源代码指令
简单语句以一个分号结束。
int val1 =5;
System.Console.WriteLine("Hello world, I am {0}",val1);
块是一个由成对大括号包围的0条或多条语句序列
{
int val1 = 5;
System.Console.WriteLine("The value of var1 is {0}",var1);
}
控制台窗口是一种简单的命令提示窗口,允许程序显示文本并从键盘接收输入,BCL提供一个名称为Console的类。包括输入和输出数据到控制台窗口。
Console类的成员,把一个文本字符发送到程序的控制台窗口
Console.Write("This is trivial text.");
//Write没有在字符串后面添加换行符,所以三条语句都输出到同一行
Console.Write("This is trivial text1.");
Console.Write("This is trivial text2.");
Console.Write("This is trivial text3.");
Console类的成员,和Write功能相同,但会在每个输出字符串的结尾添加一个换行符
System.Console.WriteLine("This is text 1.");
System.Console.WriteLine("This is text 2.");
System.Console.WriteLine("This is text 3.");
Write语句和WriteLine语句的常规形式中可以有一个以上的参数
//语法案例
Console.WriteLine(格式字符串(含替代标记),替换值0,替换值1,替换值2,....);
Console.WriteLine("Hello {0},Hello {1}.","xx","World");
在C#中,替代标记和值的数量是任意的。
值可以以任何顺序使用
值可以在格式字符串中替换任意次
Console.WriteLine("hello {0},hello {1},hello(1)","wolrd","xx");
标记不能试图引用替换值列表以外位置的值,如果引用了,不会产生编译错误。但会产生运行时错误。
Console.WriteLine("Hello {0},Hello {2}","xx","world"); //Error
单行注释://
带分隔符注释:/* 注释内容 */。可以跨行‘。嵌套注释是不允许的
文档注释:/// 包括XML文本
//单行注释
/*
带分隔符注释第一行
带分隔符注释第二行
带分隔符注释第二行
*/
int /*我是本行中注释的一部分*/ var2;
/*
带分隔符注释第一行
/*我是嵌套在带分隔符注释里面的又一个带分隔符注释,
但这样是不允许的,虽然不会报错*/
*/
//文档注释
///
///This class does....
///
class Program
{
....
}