目录
1.C#
2.一个C#程序主要包括:
3.C#MVC
4.C#基本语法
5.C#结构体(struct)
6.C#枚举Enum
7.C#中的析构函数
8.C#类的静态成员
C#是个现代的、通用的、面向对象的编程语言。它是专为公共语言基础结构(CLI)设计的。CLI由可执行代码和运行时环境组成。允许在不同的计算机平台和体系结构上使用各种高级语言。
面向对象、面向组件、结构化语言。高效、可以在多种计算机平台上编译、.NET框架的一部分。
命名空间Namespace declaration
一个class
Class 方法和属性
一个Main方法
语句Statements & 表达式Expressions
注释
HelloWorld!
using System;
// 命名空间 包含一系列的类
namespace TestHelloWorld
{
// 类 其中包含了使用的数据和方法声明
// 在该类中只有一个Main方法
// 类一般包含多个方法,其中定义了类的行为
class Program
{
// Main方法,是所有C#程序的入口点,该方法说明当执行时 类该做什么动作
static void Main(string[] args)
{
// 该注释/**/ 会被编辑器忽略,且会在程序中添加额外的注释
/*我的第一个C#程序*/
Console.WriteLine("Hello World! " + DateTime.Now.ToString()); // 指定了类的行为
// Console.ReadKey(); 针对VS.NET用户,这使得程序会等待一个按键的动作
// 防止程序从Visual Studio.NET启动时屏幕会快速运行并关闭。
Console.ReadKey();
}
}
}
注意:
“模型-视图-控制器(MVC)” 让对象尽量减少之间的依赖关系。
“programming to the interface, not the class”
黄金准则:类的松耦合,以及实现松耦合而使用的对接口编程。
MVC要实现的目标是将软件用户界面和业务逻辑分离以使代码可扩展性、可复用性、可维护性、灵活性加强。
View层是界面,Model层是业务逻辑,Controller层用来调度View层和Model层,将用户界面和业务逻辑合理的组织在一起,起粘合剂的效果。所以Controller中的内容能少则少,这样才能提供最大的灵活性。
c#是一种面向对象的编程语言,在面向对象的程序设计方法中,程序有各种相互交互的对象组成。相同种类的对象通常具有相同的类型,或者在相同的class中。
注释:
单行注释: //
多行注释: /* */
接受来自用户的值:System命名空间中的Console类提供了一个函数ReadLine(),用于接受用户的输入,并把它存储到一个变量中。
int num = Convert.ToInt32(Console.ReadLine());
函数Convert.ToInt32() 是把输入的数据转换为int数据类型,因为Console.ReadLine()只接受字符串格式的数据。
C#中的字符串常量:
字符串常量是括在双引号" "里,或者是括在@" "里。
定义常量:const
C#可空类型(NullAble):
?:单问号用于对int,double,bool等无法直接赋值为null的数据类型进行null的赋值,即让该数据类型是NullAble类型的。
int? i = 3
等同于
Nullable i = new Nullable(3);
int i; //默认值0
int? ii; //默认值null
??:双问号可用于判断一个变量在为null时返回一个指定的值。可空类型可以表示其基础值类型正常范围内的值,再加上一个 null 值。
Null 合并运算符( ?? )
Null 合并运算符用于定义可空类型和引用类型的默认值。Null 合并运算符为类型转换定义了一个预设值,以防可空类型的值为 Null。
Null 合并运算符把操作数类型隐式转换为另一个可空(或不可空)的值类型的操作数的类型。
如果第一个操作数的值为 null,则运算符返回第二个操作数的值,否则返回第一个操作数的值。
类 VS 结构
C#枚举是值类型。枚举包含自己的值,且不能继承或者传递继承。
析构函数:类的析构函数是类的一个特殊的成员函数,当类的对象超出范围时执行。
析构函数的名称是在类的名称前加一个波浪线~ 作为前缀,他不返回值,也不带任何参数。
析构函数用于在结束程序(如关闭文件、释放内存等)之前释放资源。
析构函数不能继承或重载。
关键字static意味着类中只有一个该成员的实例。
静态变量用于定义常量,因为他们的值可以通过直接调用类而不需要创建类的实例来获取。
静态变量可在成员函数或者类的定义外部进行初始化,也可在类的定义内部初始化静态变量。
using System;
namespace ConsoleApp1
{
class StaticTest {
public static int num;
public void count() {
num++;
}
public int getNum() {
return num;
}
}
class Program
{
static void Main(string[] args)
{
Line line = new Line();
line.SetLenth(6.12);
Console.WriteLine(line.GetLenth());
StaticTest staticTest = new StaticTest();
staticTest.count();
Console.WriteLine(staticTest.getNum());
staticTest.count();
Console.WriteLine(staticTest.getNum());
staticTest.count();
Console.WriteLine(staticTest.getNum());
staticTest.count();
Console.WriteLine(staticTest.getNum());
StaticTest staticTest2 = new StaticTest();
staticTest2.count();
Console.WriteLine(staticTest2.getNum());
staticTest.count();
Console.WriteLine(staticTest2.getNum());
staticTest.count();
Console.WriteLine(staticTest2.getNum());
staticTest.count();
Console.WriteLine(staticTest2.getNum());
Console.WriteLine(staticTest.getNum());
Console.ReadKey();
}
}
}