c# 编程入门第六课常量,枚举,枚举转换成其他类型变量(枚举和int,转 string字符串转枚举),结构体,数组,冒泡排序,实际使用排序,方法(函数)

c# 编程入门第六课

1. 常量

常量,不能被重新赋值

const int number = 50;

2. 枚举

//声明,namespace下
public enum Gender
    {
        男,
        女
    }
// 定义使用,program 的函数下
Gender gender = Gender.男;

用处,为了应对不同人对同一事物不同说法,统一说法。

3. 枚举转换成其他类型变量

3.1 枚举和int

namespace _04枚举和int以及string类型之间的转换
{
    public enum QQState
    {
        OnLine=1, 
        OffLine,
        Leave,
        Busy,
        QMe
    }
    class Program
    {
        static void Main(string[] args)
        {
            // region 将枚举类型强转成int类型,n为state对应序号,一般默认从零开始,但可以给首个字段设置起始序号。
            QQState state = QQState.OnLine;
            int n = (int)state;
            // int 转枚举
            int n1 = 3;
            QQState state = (QQstate)n1;
         }
     }
}

3.2 转string

所有类型都可以转string类型。

//int
int n = 10;
string s = n.ToString();
// 枚举
QQState state = QQState.OnLine;
string s = state.ToString();

其实,在打印时都会转换为string

//可以直接打印枚举值
Console.WriteLine(state);

3.2 字符串转枚举

string s = "OnLine";
//将s转换成枚举类型
//Convert.ToInt32()  int.parse()  int.TryParse()
string s1 = "123";
int n = int.Parse(s1);
//调用Parse()方法的目的就是为了让它帮助我们将一个字符串转换成对应的枚举类型
//转枚举复杂一些
QQState state = (QQState)Enum.Parse(typeof(QQState), s);

4.结构体

和C语言类似

namespace _05结构
{
    //结构体声明
    public struct Person
    {
        public string _name;//字段
        public int _age;
        public Gender _gender;
    }

    public enum Gender
    { 
        男,
        女
    }

    class Program
    {
        static void Main(string[] args)
        {
            // 定义使用
            Person zsPerson;
            zsPerson._name = "张三";
            zsPerson._age = 21;
            zsPerson._gender = Gender.男;
        }
    }
}

结构体中的变量叫字段,一个变量只能存一个值,而一个字段可以通过不同结构体存储多个值。

为了区分变量,字段起名时首字母是_

5.数组

定义

// 方式1
 int[] nums = new int[10];
// 方式2
int[] numsTwo = { 1, 2, 3, 4, 5, 6 };

方式1定义会赋予每个元素默认值

int 默认值是 0

string 是 null,(null使用和空字符串一样,但null在内存中没有开空间)

bool 是 false

遍历数组

// 赋值
for (int i = 0; i < nums.Length; i++)
{
    nums[i] = i;
}
// 打印
for (int i = 0; i < nums.Length; i++)
{
    Console.WriteLine(nums[i]);
}

nums.Length 方法是返回nums数组的长度

int 两个特殊值

int.MinValue; //int所能存储的最小值
int.MaxValue;//int所能存储的最大值

数组颠倒时的循环条件

for (int i = 0; i < names.Length / 2; i++)
{
    string temp = names[i];
    names[i] = names[names.Length - 1 - i];
    names[names.Length - 1 - i] = temp;
}

7.冒泡排序

升序 小–>大

降序 大 – >小

冒泡排序说法之一

从底向上比较交换,看起来向上冒出的样子,一般以下标[0]为底

 for (int i = 0; i < nums.Length - 1; i++)
 {
     for (int j = 0; j < nums.Length - 1 - i; j++)
     {
         if (nums[j] > nums[j + 1])
         {
             int temp = nums[j];
             nums[j] = nums[j + 1];
             nums[j + 1] = temp;
         }
     }
 }

8 实际使用排序

int[] nums = {1,2,5,4};
// 只能升序排序
Array.Sort(nums);

结合颠倒方法可以实现降序

Array.Reverse(nums);

9.方法(函数)

namespace _10方法
{
    class Program
    {
        static void Main(string[] args)
        {
            Program.Fun(); //方式一,带Program类名
            int n2 = 5;
            int n3 = FunTwo(n2); //n3接收函数返回值,方式二,由于方法同在一个类中,可以省略类名
            Console.ReadKey();
        }
		/// <summary>
        /// Fun方法
        /// </summary>
        public static void Fun()
        {
            Console.WriteLine("函数一");
        }
        /// <summary>
        /// 函数二
        /// </summary>
        /// <param name="n2">接收一个整数</param>
        /// <returns></returns>
        public static int FunTwo(int n2)
        {
            Console.WriteLine("函数一");
            int n1 = 9;
            return n1-n2;
        }
    }
}
        

public 是访问权限

static 静态的

void 返回值为空

int 返回值类型是int

猜你喜欢

转载自blog.csdn.net/qq_38463737/article/details/113246046