using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _04_var和const
{
internal class Program
{
static void Main(string[] args)
{
// var 关键字用来声明变量
// var 不是一个数据类型 也没有固定的数据类型
// var 关键字声明的变量 类型需要通过初始化的数据推断得到
//var d; d没有初始化数据 不能确定其数据类型
// C#是强类型语言 任何数据都需要有明确的声明类型
// 当我们不太确定一个数据类型时 或者 数据的类型关键字想要简写时 我们可以使用var关键字声明变量
// const 关键字用来声明常量 const也不是数据的类型
// 常量是有固定的值 常量不能修改
//常量就是在变量的前面加const 关键字
const int a = 10;
//a = 20; // 错误 常量不能修改
/*
* var 关键字声明的变量
* var 关键字不是数据类型
* var 关键字声明的变量 类型需要通过初始化的数据推断得到
* var 声明的变量必须有初始化数据
* 使用场景
// 当我们不太确定一个数据类型时 或者 数据的类型关键字想要简写时 我们可以使用var关键字声明变量
const
1. const 用来声明常量
2. 在声明变量的前面加const关键字 后变量就变成了常量
3. 常量是有固定的值 常量不能修改
变量和常量都是用来存储数据的,但是变量存储的数据可以修改,常量存储的数据不允许被修改
var 变量
const 常量
*/
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _05_可空类型
{
internal class Program
{
static void Main(string[] args)
{
// null 就是空
// 可空类型就是指变量的值可以为 null 的类型
//int a = null;
// 值类型数据想要变成可空类型就需要在类型关键字的后面加?
int? b = null;
//int c = b *2;可空类型不能直接变为不同类型
//Console.WriteLine((int)b); null 强转会报错
// 引用类型数据都可以为 null
//Person person = null;
//string str = null;
//可控类型在使用时需要确定变量是否为空
//?? 用来判断数据是否为空 如果 ?? 前面的数据为空 就返回 ?? 后面的数据 如果??前面的数据不为空则返回前面的数据
int c = b?? 0; // 如果 b 为 null 则返回 0
//如果要在数据为空和不为空时执行指定的逻辑可以使用下面的方法
if (b == null)
{
// 数据为空的逻辑
}
else
{
// 数据不为空的逻辑
}
Console.WriteLine(c);
Console.ReadLine ();
/*
* 值类型变量,存储的数据不能为空,引用类型变量,存储的数据可以为空
* 值类型变量想要存储nu11 则需要将类型改为可空类型,即在类型关键字后面加??
* 可空类型不能和普通类型相互转化,可空类型在使用时首先要判断数据是否为空
*/
}
}
class Person
{
}
}