第四节 C#语言介绍

C#的泛型和C++的模板比较相似,其作用就是对代码算法的重用。程序开发都是对数据进行处理,数据根据数据类型区分,处理就是使用不同的算法。但是,由于数据类型的区分,造成我们需要对算法的重复使用。泛型的用途在于按照统一的算法来处理一定范围内的所有数据类型,因此它称之为泛型。

// 泛型的使用, 交换两个变量
public static void change<T>(ref T a, ref T b)
{
    T temp = a;
    a = b;
    b = temp;
}

/********************** 以下代码放入到main函数中  *************************/

// 泛型的使用
int a = 1, b = 2;
change<int>(ref a, ref b);
Console.WriteLine("a = " + a + ", b = " + b);

char c = 'c', d = 'd';
change<char>(ref c, ref d);
Console.WriteLine("c = " + c + ", d = " + d);

C#System.Collections.Generic库提供了大量的泛型,主要用于集合操作。其实使用比较多的是ListDictionary,他们分别代表线性列表和键值对字典。用法如下:

using System.IO;
using System.Collections.Generic;

// List使用
List<int> list = new List<int>(10);
// 循环添加列表元素
for (int i=0; i<10; i++) {
    list.Add(i);
}
// 遍历列表输出
foreach (int temp in list)
{
    Console.Write(temp);
}
Console.WriteLine("");
// 移除指定索引的元素
list.Remove(1);
// 清空列表
list.Clear();

// Dictionary使用,记录学生成绩
Dictionary<string, double> stuScore = new Dictionary<string, double>();
// 添加字典元素
stuScore.Add("zhangsan", 88.5);
stuScore.Add("lisi", 93.5);
// 根据key直接读取对应元素
if (stuScore.ContainsKey("lisi"))
{
    Console.WriteLine("lisi : " + stuScore["lisi"]);
}
// 遍历字典
foreach (KeyValuePair<string, double> stu in stuScore)
{
    Console.WriteLine("Key = {0}, Value = {1}", stu.Key, stu.Value);
}
// 移除指定key的元素
stuScore.Remove("zhangsan");
// 清空字典
stuScore.Clear();

在类中的数据成员,一般情况我们都是设置为私有访问模式(private),然后使用公开(public)的函数成员来访问数据成员。C#语言提供了一个属性成员的概念来实现成员变量的访问。

public class Character
{
    private string charName = "";
	
    public string Name
    {
        set { charName = value; }
        get { return charName; }
    }
}

// 属性成员的使用
Character ch = new Character();
ch.Name = "player";              // 使用 set 赋值
Console.WriteLine(ch.Name);      // 使用 get 获取值 
Console.ReadKey();

属性(Name)本质就是函数,它的名称可以和成员变量(charName)不一样。set和get就是用来访问charName变量的,set用于赋值,get用于获取,两者可以同时使用,也可以单独使用。

教学案例源代码下载:

https://download.csdn.net/download/konkon2012/23471862

备注:这是我们游戏开发系列教程的第一个课程,主要是编程语言的基础学习,优先学习C++编程语言,然后进行C#语言,最后才是Java语言,紧接着就是使用C++和DirectX来介绍游戏开发中的一些基础理论知识。我们游戏开发系列教程的第二个课程是Unity游戏引擎的学习。课程中如果有一些错误的地方,请大家留言指正,感激不尽!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

咆哮的程序猿

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

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

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

打赏作者

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

抵扣说明:

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

余额充值