IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> C#学习3 -> 正文阅读

[游戏开发]C#学习3

21.String类型

所以的类型都能调用ToString方法转成string类型;

22.结构

结构可以帮助我们一次性声明多个不同类型的变量;

语法

访问修饰符 struct 结构名{

????????访问修饰符 _字段1,

????????访问修饰符 _字段2,

????????访问修饰符 _字段3...

}

字段与变量的区别:变量程序运行区间只能存储一个值,而字段可以存储多个值;

实际开发中为了区别字段与变量,通常在命名字段的时候字段名前加_;

结构与枚举相同,只能声明在命名空间里面或者类里面与方法平级,不能声明在方法内部,如果声明在类内部,则该结构只能供该类使用,一般声明在命名空间里面供多个类使用;

            //声明
            public struct MovieStruct
            {
                public string _mname;
                public int _year;
                public double _price;
                public string _director;
            }
            //调用
            MovieStruct ms;
            ms._price = 33.6;
            ms._year = 2003;
            ms._mname = "英雄";
            Console.WriteLine("{0}--{1}--{2}--", ms._price,ms._year,ms._mname);
            MovieStruct ms2;
            ms2._price = 22.3;
            ms2._mname = "无间道";
            ms2._year = 2009;
            Console.WriteLine("{0}--{1}--{2}--", ms2._price, ms2._year, ms2._mname);

23.数组

数组可以一次性存储多个相同类型的变量

语法

            int[] intArr=new int[10];   //常用
            int[] intArr2={ 1,2,3,4,5,6};   //常用
            int[] intArr3=new int[]{ 1,2,3,4,5,6};  //不常用
            int[] intArr4 = new int[6] { 1, 2, 3, 4, 5, 6 };    //不常用

24.null与""字符串的区别

null并没有在内存开辟空间,空字符串在内存中开辟了空间并赋值空字符串;

25.方法

参数的修饰符

out:可以实现在一个方法中返回多个结果,out参数必须在方法的内部为其赋值;

        public static void GetSomeInfo(int[] arr, out string name, out int year,out double price)
        {
            name = "投名状";
            year = 2003;
            price = 25.6;
        }

            //调用
            GetSomeInfo(arr,out string name, out int year, out double price);
            Console.WriteLine("{0}--{1}--{2}", name,year,price);

ref:引用传参,ref参数在传参之前必须先赋值;

        public static void GetMovieName(ref string  s)
        {
            s = "电影" + s;
        }

        //调用
        string s = "寒战";
        GetMovieName(ref s);
        Console.WriteLine(s);

params可变参数:方法定义的时候,用params修饰的形参在函数调用的时候传递的实参数量可变,但是必须是相同的数据类型,因为实参最后会转换成一个数组,params参数必须是形参列表的最后一个参数;

        public static void TeseParams(int j,params int[] arr)
        {
            for(int i =0; i < arr.Length; i++)
            {
                Console.WriteLine (arr[i]);
            }    
        }
        
        int[] arr= { 22, 33, 666 };
        TeseParams(11,88,999,888 );

26.类-属性

类包含字段、属性、方法;

在C#中,类的字段如果没有加权限修饰符,那么系统会默认给字段加private修饰符;

字段与结构体字段类似,有修饰符,命名用_开头;

属性的作用是保护字段,对字段的取值和赋值进行限定;

属性的本质是两个方法set和get,类似于java的get,set方法;

一般一个字段对应一个属性;

既有get,又有set的属性称为可读可写属性;

只有get,没有set的属性称为只读属性;

只有set,没有get属性称为只写属性;

public class Movie
    {
        public string _name;
        public string Name
        {
            set { _name = value; }
            get { return _name; }
        }

        int _year;

        public int Year
        {
            set { 
                if(value < 1970 || value > 2022)
                {
                    value = 1970;
                }
                _year = value;
            }

            get { return _year; }

        }

        public string _type;

        public string Type
        {
            set { _type = value; }
            get
            {
                if(_type!="爱情片" || _type != "战争片")
                {
                    return "悬疑片";
                }
                return _type;
            }
        }

        public string _director;

        

        public void ShowMovieInfo()
        {
            Console.WriteLine("电影《{0}》,上映时间{1},导演{2},类型{3}",this.Name, this.Year, this._director,this.Type);
        }
    }

27.类-静态

在C#中,在类的外部,只有类能调用静态成员;

静态函数中,只能访问静态成员,不能访问实例成员;

实例方法中既可以调用静态成员,也能调用实例成员;

静态类中只能有静态成员,静态成员一般用类名调用,所以静态类不能被实例化也没有必要;

实际开发中,通常将static修饰的类当作工具类;

只有当程序全部结束之后,静态类才会释放资源;

28.类-internal

同一个程序集(项目)中可以访问,类似java中的默认修饰符;

29.类-new关键字

new主要做了以下3件事:

? ? ? ? ①在内存中开辟空间;②在开辟的空间中创建对象;③调用对象的构造函数;

30.类-委托构造函数

在构造函数中调用其他重载的构造函数称为委托构造函数,这样可以减少构造代码冗余;

public class Company
    {
        private string _companyName;

        public string CompanyName { get => _companyName; set => _companyName = value; }

        private string _addr;
        public string Addr { get => _addr; set => _addr = value; }

        public Company(){

        }


        public Company(string companyName):this(companyName,"温州市") { 

        }
        public Company(string CompanyName, string Addr)
        {
            this.CompanyName = CompanyName;
            this.Addr = Addr;
        }
}

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-04-06 16:21:40  更:2022-04-06 16:25:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/16 20:50:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码