C#学习笔记---基础入门(一)

时间:2023-03-08 20:11:43

C#中的变量:

一个变量就是存储区(内存)中的一个存储单元。

变量声明赋值:int money =1000;/int money;money=1000; 输出:console.writeLine(money);console.ReadLine(money);

变量的命名规则:即标识符的命名规则: 字母,数字,下划线(不能以数字开头,区分大小写)

命名规范:简短且能清楚的表明变量的作用,通常第一个单词的首字母小写,其后单词的首字母大写,例如myScore

变量的作用域(生命周期):类体中的成员变量(类中的全局变量)-》1.static int x=90;//静态变量  2 .int x=90;//实例变量

静态方法中调用静态变量可以根据变量名(类名.变量名)直接调用,而想调用实例变量必须经过对象名调用。

class Program
{
int aa=;//实例变量
static int bb=;//静态变量
static void Main(string[] args)
{
Program pro=new Program();
Console.WriteLine(pro.aa);
Console.WriteLine(bb);
} }

方法中的局部变量 :只限制于方法内可以调用。

数据类型:

值类型:整数/实数/字符/布尔    结构/枚举  
-------值类型直接存储值(对一个对象进行修改,不会改动其他对象值)

C#学习笔记---基础入门(一)

八进制(以0开头,其他为0-8)十六进制(以0X开头);C#默认小数是double类型,所以使用float类型时后面加f.

特点:值类型表示实际数据,只是将值存在内存中,值类型都存储在栈(固定空间)中。

引用类型:类/接口/数组/委托  一般会用到New关键字,string类型是引用类型

特点:引用类型表示指向数据的指针或引用,包含内存堆(动态空间)中对象的地址,为NULL,表示未引用任何对象。

类型转换:隐式类型转换:低精度向高精度转换,可以隐式转换,或者两者可兼容,例如int与double

显式转换/强制转换:

int b=(int)10.2;//(类型名)表达式
double a=;
int c=(int)a; double a=10;
int c=Convert.ToInt32(a);//Convert.To类型名(表达式)经常用
double a=10;
double c=double.Parse(a.ToString());//.Parse类型名(表达式必须为String型) string str="10";
int c=Int32.Parse(str);

值类型转换为->引用类型 称为装箱

引用类型转换为->值类型 称为拆箱

int i =10;//值类型
object obj=i;//装箱操作
int j=(int)obj;//拆箱操作

 枚举类型:

枚举是一组描述性的名称

枚举定义一组有限的值,不能包含方法

对可能的值进行约束

枚举允许描述性名称表示整数值

语法:enum 枚举名{值1,值2...}

public enum Mrkj
{
CS=,Java=,C=
}
在main方法中输出
console.WriteLine((int)Mrkj.CS);

枚举使用:日期相关程序,编写用户权限

常量:

静态常量:const  不能被修改 ,与static变量相同,可以直接通过类名调用。

动态常量:readonly  在构造函数中可以被修改

C#中的表达式与运算符

表达式由操作数与运算符构成

运算符:+ - * / %

自增自减运算符:b=a++(先取值,后自增);b=--a(先自减,后取值);
赋值运算符=:需要注意赋值左右两边值类型的隐式转换问题。

关系(比较)运算符:>=   <=   >  <  ==  !==

逻辑运算符:非!  与&&   或 ||  (如果使用&或者| ,效率没有&&,||效率高)

位运算符:按位与运算 5&4=4.因为5=00101 ,4=00100,按位与得到00100

按位或运算 3|6=7.因为3=00011 ,6=00110,按位或得到00111

按位取反运算 ~7取反为-8.因为7=00000111 ,按位取反得到11111000

按位异或运算 10^3=9.因为10=001010 ,3=000011,按位异或得到001001

移位运算:左移位<<右移位>>    左移几位就是*2的几次方。  右移几位就是除以2的几次方。

特殊运算符:

C#学习笔记---基础入门(一)

运算符的优先级:下图优先级从上到下,由高到低。(结合表示同级从右向左,从左向右)

C#学习笔记---基础入门(一)

C#中的字符与字符串

字符 char(单个字符) 用单引号 ,例如char a=‘a’;可以通过调用char类下的方法进行一些操作,具体通过help查看其相关方法

转义字符:“\”将原有字符的意义改变

转义符 说明
\n 回车换行
\t 横向跳到下一制表位置
\" 双引号
\b 退格
\r 回车
\f 换页
\\ 反斜线符
\' 单引号符

如果想输出目录,例如“C:\windows\app\sad\haha”,有很多反斜线,则可以使用@方法,即@“C:\windows\app\sad\haha”。也可正常输出。

字符串  string  用双引号

string str1=null;//null与空字符串不是同一概念。null不推荐

string str2="";

连接多个字符串使用“+”运算符

比较字符串:if(name==""){}   if(name.Equals(string.Empty)){}

string.Compare(str1,str2)        str1.CompareTo(str2)  这两种可以比较两个字符串的值,但如果是英文或汉字,则比较他们在字典中的位置。如相等返回0,不等返回1.或-1

格式化字符串:string myString=string.Format("{0}乘以{1}等于{2}“,2,3,2*3);//输出结果为2乘以3等于6

格式化日期格式:

C#学习笔记---基础入门(一)

插入字符串:在字符串的指定位置插入子字符串

                 语法  string Insert(int startIndex ,string value)

填充字符串:在字符串的左侧或者右侧进行字符填充(只能填充一个单字符)

语法  string PadLeft(int totalWidth,char paddingchar)

string PadRight(int totalWidth,char paddingchar)

删除字符串:从一个字符串的指定位置开始,删除指定数量的字符

语法 string Remove(int startIndex,int count)

复制字符串:Copy方法----全部复制 (静态方法,通过类名调用)

CopyTo方法----部分复制(非静态方法,通过对象名调用)

string str="helloworld";
string str1=string.Copy(str);//完全复制 char[] ch1=new char[];
str.CopyTo(,ch1,,);//部分复制,参数代表含义为从str的第6个字符复制5个字符到ch1数组中,从第三个位置开始粘贴

替换字符串:将字符串中的某个字符或者字符串替换成其他的字符或字符串

语法 string Replace(char OldChar,char NewChar)

string Replace(string OldValue,string NewValue)

StringBuilder类(对原有对象进行操作,不会生成新的对象)

其存在System.Text命名空间中

常用的方法:Append//AppendFormat//Insert//Remove//Replace

StringBuilder sbuilder=new StringBuilder("MR");
sbuilder.Append("soft");
sbuilder.AppendFormat("{0:C}",);
sbuilder.Insert(,"mr");
sbuilder.Remove(,);
sbuilder.Replace("soft","SOFT");//输出MRSOFT¥365.00

StringBuilder 与String的区别在于String Builder效率更高

C#中的条件判断语句

if else

if  else if

switch case

C#中的循环控制语句

while语句

do while语句

for循环语句

foreach语句 用于枚举一个集合的元素,并对该集合中的每个元素执行一次嵌入语句。

using System.Collection;

在main方法中
ArrayList list=new ArrayList();
list.Add("a");
list.Add("b");
list.Add("c");
foreach (string str in list)
{
Console.WriteLine(str);
}
Console.ReadLine();

C#中的跳转语句

break;  用于退出最内层的循环或者退出一个switch语句

contine;  用于终止当前循环,并开始下一次循环,只能用于while  /do while/for/foreach 中

goto  用于将控制转移到由标签标记的语句,goto case 【参数表达式】;goto default;goto【标签】;

return;返回语句 返回与方法相同的数据类型

数组

一维数组

声明初始化数组 int[] numbers = new int[5];

float[] scores = new float[3]{1.1f,2.4f,5.6f};

string[] names = new string[10];//使用new是给数组动态赋值。

string[] s={"laowang","laozhang","laoli"};//给数组进行静态赋值Tips:CW+tab+tab---Console.WriteLine();

for+tab+tab,----快捷键输出for循环

二维数组

int[,] numbers =new int[2,3];//声明一个2行3列的数组,初始值为0.

int[,] numbers =new int[2,3]{

            {1,2,3},

{4,5,6}

};

遍历二维数组除了使用双层遍历for循环,还可以用更简单的foreach方法 , 当我们不需要对循环本身进行控制,  推荐使用foreach。             foreach (int num in numbers){}