c#基础入门(1)——变量、运算符、数组

一、变量

变量的命名规则:
①变量名必须以字母、_、@开头,后边可以是数字、字母、下划线;
②同一变量不能重复声明,例如:连续声明int numOne=1;int numOne=2;会报错;
③变量名不能是系统关键字,例如string、static、void等;
④Pascal命名法、Camel命名法,Pascal命名法一般用于属性、方法,Camel命名法一般用于字段;
常见变量类型:
int、float、double、char、string、bool、const、enum、struct、decimal
①int是整型变量,用法有:int.MaxValue、int.Minvalue
int? num=null;带?表示int型变量可以赋值为null,如果不加?就把null赋值给int变量的话会报错,不信可以试试。
②float的浮点型变量
③double是双精度浮点型变量
④char是字符变量,char sex=‘男’;
⑤string是字符串,string可以看做是char类型的只读数组,

stringstrTest="abcde";
char[] charArray=strTest.ToCharArray();
charArray.Length==5;charArray[0]=='a';charArray[4]=='e';
strTest.Length==5;strTest[0]=='a';strTest[4]=='e';
char[] charArray={'a','b','c','d','e'};
string strFromCharArray=new string(charArray);

此时strFromCharArray==strTest,可通过控制台程序来验证,代码如下:

if("strFromCharArray==strTest")
{   Console.WriteLine("strFromCharArray==strTest");
}
else
{  Console.WriteLine("strFromCharArray!=strTest");
}

⑥bool类型变量,值为true或false,bool flag=8>10;此时flag==false,bool bigger=12>10;此时bigger为true
⑦const常量变量,const int count=10;或const string strTest=“test string”;
虽然没有static关键字修饰,但常量默认是静态的;
count常量、strTest常量(注意是常量而不是变量,变量可变常量不可变)声明后,
后续代码便只能读取count、strTest的值而不能修改count、strTest的值
⑧enum枚举类型变量,枚举可是跟class一个级别的不要把它当做方法来声明,

class Program
{  
   static void Main(string[] args)
   {
      Gender gender=Gender.男;
      Gender girlGender=Gender.女;
      string sex=gender.ToString();  
      int index=(int)gender;     
      int girlIndex=(int)girlGender;
      Console.WriteLine("sex="+sex);//输出sex=男
      Console.WriteLine("index="+index);//输出index=0
      Console.WriteLine("girlIndex="+girlIndex);//输出girlIndex=1
      //判断字符串是否在枚举中
      bool result1 = Enum.IsDefined(typeof(Gender), "男");
      //int、string可以转换为枚举类型
      Gender objGender1=(Gender)Enum.Parse(typeof(Gender),"0");
      Gender objGender2=(Gender)Enum.Parse(typeof(Gender),"1");
      Gender objGender3=(Gender)Enum.Parse(typeof(Gender),"男");
      Gender objGender4=(Gender)Enum.Parse(typeof(Gender),"女");
   }
}
enum Gender
{   男,//默认索引是0
    女 //索引递增,女的索引就是1
}
//如果Gender变为如下那index、girlIndex的值会变为1和2
enum Gender
{   男=1,//更改首位索引是1
    女 //索引递增,女的索引就是2
}

⑨struct结构体,结构体跟class类似,可以看做是轻量级的class
结构是值类型,而class是引用类型;
结构的实例化可以不使用new运算符,class必须使用new;
结构体可以实现接口;
结构可以声明构造函数,但它们必须带参数,对结构体中的所有的公有字段、私有字段或属性进行初始化(结构不能包含显式的无参数构造函数,否则会报错)

class Program
{
    static void Main(string[] args)
    {
        Person person1 = new Person();
        person1.Address = "汤臣一号";
        person1.Age = 18;
        person1.Name = "蝈蝈";
        ChangeStruct(person1);
        //输出结果是person1.Address=汤臣一号
        Console.WriteLine("person1.Address=" + person1.Address);
        //当结构中有属性时,必须用new初始化,否则提示person2未初始化
        Person person2;
        person2.Address = "汤臣一号";
        person2.Age = 18;
        person2.Name = "蝈蝈";
        //SuperPerson结构体中有三个public类型字段,创建实例没用new
        SuperPerson super;
        super.Address = "美国白宫";
        super.Age = 20;
        super.Name = "蝈蝈";
        Console.ReadKey();
    }
    public static void ChangeStruct(Person person)
    {
        person.Address = "唐宁街10号";
    }
}
public struct Person
{
    private string name;
    public string Name
    {
        get { return name; }
        set { name = value; }
    }
    private int age;
    public int Age
    {
        get { return age; }
        set { age = value; }
    }
    private string address;
    public string Address
    {
        get { return address; }
        set { address = value; }
    }
    public Person(string _name, int _age, string _address)
    {
        name = _name;
        address = _address;
        age = _age;
    }
}
//如果结构体中是三个字段那就可以不用new创建结构体实例
public struct SuperPerson
{
    public string name;
    public int age;
    public string address;
    public Person(string _name, int _age, string _address)
    {
        name = _name;
        address = _address;
        age = _age;
    }
}

⑩decimal高精度小数类型,一般用于存储金钱,decimal比double的精度还高,因为有的人很有钱如果数字少一位那就…,

decimal money=500m;
//输出money=500
Console.WriteLine("money="+money);

随机数变量:

static void Main(string[] args)
{
    //带时间种子的随机数变量每次产生的随机数都相同(不是每个都相同)
    Random randomTime = new Random(0);
    Random random = new Random();
    int[] nums=new int[20];
    for (int i = 0; i < 20; i++)
    {
        //nums[i] = random.Next();
        //random.Next(15)等价于random.Next(0,15)
        //nums[i] = random.Next(15);
        nums[i] = random.Next(5, 15);//可取到最小值5
        //nums[i] = randomTime.Next(15);//取不到最大值15
    }
    for (int i = 0; i < 20; i++)
    {
        Console.WriteLine("nums[i]=" + nums[i]);
    }
    Console.ReadKey();
}

Math函数:
Math.Ceiling(double num);//返回大于等于num的最大整数
Math.Floor(double num);//返回小于等于num的最大整数
Math.Round(double num);//四舍六入五取偶

Console.WriteLine(Math.Ceiling(12.2));//输出13
Console.WriteLine(Math.Floor(13.5));//输出13
Console.WriteLine(Math.Round(12.5));//输出12
Console.WriteLine(Math.Round(13.5));//输出14

二、运算符

赋值运算符:=
算术运算符:+、-、、/、%、++、–
一元运算符(++、–)优先级高于二元运算符(+、-、
、/、%)优先级
复合赋值运算符:+=、-=、*=、/=、%=、??=
关系运算符(比较运算符):>、<、==、>=、<=、!=
逻辑运算符:&&、||、!
运算符优先级:!>算术运算符>关系运算符>&&>||
异或运算符:


class Program
{
    static void Main(string[] args)
    {          
        // ^ 两边为bool类型值时,两边的值相同时结果为false,两边的值不同时为true
        Console.WriteLine(true ^ true);  //false
        Console.WriteLine(true ^ false); //true
        Console.WriteLine(false ^ true); //true
        Console.WriteLine(false ^ false);//false 
        // ^ 两边为整数时,两边的值转换成二进制然后逐位进行比较,如果相同则为0,不同则为1。所以应该列式:
        // 5 :0000 0101
        // 28:0001 1100
        //结果:0001 1001
        Console.WriteLine(5 ^ 28);//结果为25
    }
}

三、数组

数组就是一些类型相同的数据形成的组合,数组有四种声明方法:

int[] nums=new int[3]{1,2,3};
int[] nums=new int[]{1,2,3};
int[] nums={1,2,3};
int[] nums=new int[3];

数组的长度一旦确定便不能更改,如果需求有变,则必须重新定义数组,数组的索引从0开始,int[] nums={8,6,12,5,7};nums.Length==5;nums[0]==8;nums[4]==7;
数组常用的两种排序方法如下:

int[] numArray={12,45,8,32,6};
//默认升序排列
Array.Sort(numArray);//numArray={6,8,12,32,45} 
//将数组内的元素的位置翻转
Array.Reverse(numArray);//numArray={45,32,12,8,6} 
//string数组的排序可以动手做一下
string[] array={"ab","aB","aBa","abc","Aa","ba"};
Array.Sort(array);//array={"Aa","ab","aB","aBa","abc","ba"};
Array.Reverse(array);//array={"ba","abc","aBa","aB","ab","Aa"};

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

changuncle

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值