C#基础

一、数据类型
1、值类型:值类型直接包含数据。
2、引用类型:引用类型不包含存储在变量中的实际数据,但它们包含对变量的引用。它们指的是一个内存位置。使用多个变量时,引用类型可以指向一个内存位置。如果内存位置的数据是由一个变量改变的,其他变量会自动反映这种值的变化。
内置的引用类型有:object、dynamic 和 string。
用户自定义引用类型有:class、interface 或 delegate。
3、指针类型:指针类型变量存储另一种类型的内存地址。C# 中的指针与 C 或 C++ 中的指针有相同的功能。

二、类型转换
1、隐式类型转换:这些转换是 C# 默认的以安全方式进行的转换。例如,从小的整数类型转换为大的整数类型,从派生类转换为基类。
2、显式类型转换:这些转换是通过用户使用预定义的函数显式完成的。显式转换需要强制转换运算符。

三、封装
封装:被定义为"把一个或多个项目封闭在一个物理的或者逻辑的包中"。在面向对象程序设计方法论中,封装是为了防止对实现细节的访问。
抽象和封装是面向对象程序设计的相关特性。抽象允许相关信息可视化,封装则使程序员实现所需级别的抽象。
封装使用访问修饰符来实现。一个访问修饰符定义了一个类成员的范围和可见性。
1、public
任何公有成员可以被外部的类访问。
2、private
只有同一个类中的函数可以访问它的私有成员。
类的默认访问标识符是 internal,成员的默认访问标识符是 private。
3、protected
该类内部和继承类中可以访问。
4、internal
同一个程序集的对象可以访问。
如果定义在一个dll中,就不能被访问。
5、protected internal
3和4的并集,符合任意一条都可以访问。

四、可空类型
可空类型可以表示其基础值类型正常范围内的值,再加上一个 null 值。
??是NULL合并运算符,如果第一个操作数的值为 null,则运算符返回第二个操作数的值,否则返回第一个操作数的值。

示例:

using System;
using System.Diagnostics;

namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            int? x = null;
            int? y = 100;
            Console.WriteLine($"x = {x ?? -100}");
            Console.WriteLine($"x = {y ?? -100}");
            Console.ReadLine();
        }
    }
}
View Code

输出:

原文地址:https://www.cnblogs.com/ACGame/p/10962898.html