C# 基础2

变量定义

定义:变量类型,变量名, int a = 0; 先声明再使用 见名知意

小驼峰命名法,只能以字母@_开头不能与关键字重复,相同作用域不能定义两个相同变量名

声明在方法中的局部变量没有初始值,未赋值的变量不可使用。

//声明变量
int a;
//初始化变量
a = 8;
//声明并初始化
int b = 9;
//类型相同简写
int c,d,e;
c = 6; d = 5; e = 4;

常量

存储不变的数据,常量中的命名需要全部大写。

使用const 关键字定义的常量,声明的时候必须要初始化赋值,并且只能赋一次值,不可更改。

常量分为:值类型常量,字符串类型常量,const关键字常量,readonly字段常量

//值类型常量  都有不可变的具体的值
int intNumber = 10;//二进制
int intNumber2 = 0X20//十六进制
float floatNumber = 1.1f;
long longNumber = 100L;
//字符串常量
string strNumber = 'abc';
//const关键字常量 名字大写 声明初始化一起,不可更改
const decimal PI = 3.1415926m; 
//readonly字段常量 设置当前字段为只读 只能作为字段 不能作为局部常量  可以在声明时初始化,也可以在构造函数中初始化
readonly static int ReadOnlyInt = 100;

 输出与输入

Console.WriteLine(); //输出字符到控制台并换行
Console.Write(); //必须要有值 并且不换行
​
Console.ReadLine(); //返回string类型的值  可以暂停程序
Console.Read();  //返回第一个字符的编码   可以暂停程序
​
Console.ReadKey();//暂停程序

数据类型转换

隐式类型转换:低精度到高精度都有隐式类型转换

int number = 10;
double number1 = number; //自动类型转换
int n = 10;
long l = n;

显式类型转换:高精度转低精度,要强制类型转换,会丢失精度

double d = 300.29d;
int i = (int)d;

Parse() 适用于string转换成值类型

string str = "123";
int IntNumber = int.Parse(str); //只能转数字类型的字符串或 bool 类型的字符串
long longNumber = long.Parse(str);
byte byNum = byte.Parse(str)
    
//int.TryParse与int.Pares相似,但它不会产生异常,转换成功返回true失败返回false
//最后一个参数为输出值,如果转换失败输出值为0
int ab; //用于输出参数
string str = "a12";
bool isSuc = int.TryParse(str,out ab);
string isSucStr = isSuc?"转换成功":"转换失败";
    
//Convert类型转换,适用各种类型的转换
//万能转换  如果无法转化就抛出异常
string str = "123";
byte bystr = Convert.ToByte(str4);
Console.WriteLine(str4); // 123
sbyte sbystr = Convert.ToSByte(str4);
Console.WriteLine(sbystr);// 123
short shostr = Convert.ToInt16(str4);
Console.WriteLine(shostr);// 123
//......
//bool类型转换,转换为数字类型时是0和1
bool boNum = true;
int boInt = Convert.ToInt32(boNum);
Console.WriteLine(boInt); // 1
//字符串太长或字母数字混合无法转换
string str5 = "123abc";
int inzm = Convert.ToInt32(str5);
Console.WriteLine(inzm);// 抛出异常

运算符

优先级: 有括号先括号,后乘除再加减,然后位移再关系,逻辑完后条件,最后一个逗号

运算符优先级
后缀()   [ ]   ->   .   ++   - -
一元++   --    !   ~   +   - 
乘除*   /
加减+  -
移位<<    >>
关系<  <=   >   >=
相等==    !=
位与AND&
位异或XOR^
位或OR|
逻辑与 AND&&
逻辑或 OR||
条件?   :
赋值=    +=    -=    *=    /=    %=    &=    ^=    |=    <<=    >>=
逗号,

算数运算符  数字类型大类型和小类型结合 结果默认是大类型结果

int intNum = 10;
  int intNum2 = 30;
  long longNum = 20;
  //默认int类型
  int ilNum = intNum * intNum2;
  Console.WriteLine(ilNum);
  //默认隐式转换
  long liNum = longNum * intNum2;
  Console.WriteLine(liNum);
  //显示类型转换(强制转换)
  int ilNum1 = (int)longNum + intNum;
  Console.WriteLine(ilNum1);
​
//字符串字符串相加执行拼接逻辑
string str6 = "123";
string str7 = "abc";
string _str = str6 + str7;
Console.WriteLine(_str);//123abc
//字符串类型和数字类型也执行拼接逻辑
string str8 = "456";
int int8 = 10;
Console.WriteLine(int8 + str8);

 单字符类型和数字类型 单字符ascii表对应的10进制数字和数字类型学进行数运算

 char charNum = 'a';
 int intNum9 = 10;
 int chin = (int)charNum;
 Console.WriteLine(chin); // 97
 Console.WriteLine(charNum + intNum9); // 107
 Console.WriteLine(charNum - intNum9); // 87
 Console.WriteLine(charNum * intNum9); // 970
 Console.WriteLine(charNum / intNum9); // 9
 Console.WriteLine(charNum % intNum9); // 7
// ++ -- 自增 自减  加加减减 在前先自增自减1 在后的话等本段代码执行完分号后 再自增或自减 在下一行代码可以查看
int intNum10 = 10;
intNum10++;
++intNum10;
​
//二义性错误
long l8 = 88;
ulong ul8 = 88;
// Console.WriteLine(l8 + ul8);

关系运算符 

//关系运算符 < · > · <= · >= · == · !=
int a = 1;
int b = 2;
bool c =  a > b;
Console.WriteLine(c); // false
bool d = a < b;
Console.WriteLine(d); // true
bool e = a >= b;
Console.WriteLine(e); // false
bool f = a <= b;
Console.WriteLine(f); // true
bool g = a == b;
Console.WriteLine(g); // false
bool h = a != b;
Console.WriteLine(h); // true

字符串关系用法

        1.字符串不能使用 < > <= >= 如果要使用需要重载运算符

        2.字符串能使用 ==  !=  比较两个字符串的内容是否相同

        3.值类型和字符串类型不能直接使用关系运算符

string str = "123";
string str1 = "456";
//bool inTrue = str > str1;


 bool isTrue10 = string1 == string2;
 bool isTrue11 = string1 != string2;
 Console.WriteLine(isTrue10);
 Console.WriteLine(isTrue11);

 int intNumber = 100;
 string stringNumber = "100";
// bool isTrue12 = intNumber == stringNumber;

逻辑运算符

        逻辑与 &&    逻辑或 ||    取反 !

 //逻辑与 &&
//如果有一个条件为false 结果就是false,如果判断到false,会执行短路运算,后续条件不再判断,直接返回false
 bool yesTrue = false;
 bool yesTrue1 = true;
 bool yesTrue2 = false;
 Console.WriteLine(yesTrue ? "可以出去玩" : "不可以出去玩");
 Console.WriteLine(yesTrue1?"去公园":"去爬山");

 //逻辑或 ||    只要判断条件中有true,结果就是true ,碰到true执行短路运算,后续不在判断,结果就是true
 Console.WriteLine(yesTrue || yesTrue1? "杀小日本":"操小日本");
 Console.WriteLine(yesTrue || yesTrue2? "轰死小日本":"小鬼子吾日汝母乎");

 //取反 !
 Console.WriteLine($"原本是false取反后为:"+!yesTrue);
 Console.WriteLine(!yesTrue);
 Console.WriteLine(!(yesTrue && yesTrue1 && isTrue6)?"出去玩":"不去玩");
 //先算括号内的两个取反为!(true || false)  再算外面的(true || false) 根据逻辑或运算可知只要有一个true结果就是true所以 输出上学
 Console.WriteLine(!yesTrue || !(!yesTrue2||!yesTrue1)?"上学":"上班");

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值