Unity3D and C#学习笔记记录 —— Using的用法

                                                    Unity3D and C#学习笔记记录 —— Using的用法


目录

1、博客介绍

2、内容

(1)作用

(2)简单示例

(3)多引用示例

3、推送

4、结语


1、博客介绍

       最近比较忙,好久没更博客,年后还会慢慢的回复更新的速度,年后会再去逐步完善Unity的框架内容,然后会不定期再更新一些插件学习的博客,新的一年希望学到更多的东西,也希望看文章的各位也能得到自己满意的结果,本篇博客作为知识点学习记录,关于Using的用法,普遍我们都是作为dll或者模块的引用,上两天看一串代码如下用法,有些疑惑,稍微查了查做了本次记录。

                using(ES2Reader reader = new ES2Reader(settings))
		{
			while(reader.Next())
				headers[reader.currentTag.tag] = reader.ReadHeader();
		}

2、内容

(1)作用

       简单介绍一下作用吧,我们在Using关键字后的括号内实例一些类,然后在下方的方法体内就可以直接调用实例好的类,这些类在Using外部是无法调用的,并且在Using方法体的执行完毕后,该类会被自动释放掉,注意,这个实例的类必须继承IDisposable接口,不然无法编译,释放的时候会自动调用类重写的Dispose方法。

(2)简单示例

首先创建一个继承自IDisposable接口的类,并添加一个开放的函数

public class Test1 : IDisposable {

	public void PrintData(string str)
	{
		Debug.Log("--------------:"+str);
	}

	public void Dispose()
	{
		Debug.Log("释放Test1");
	}
}

然后在Using中使用

public class TestSave : MonoBehaviour {
	void Start () {
		using (Test1 test1 = new Test1()) 
		{
			test1.PrintData("This is a test1");
		}
		print("Using语句结束");
	}
}

以下是输出结果

(3)多引用示例

Using不单单只能引用单一示例,还可以同时引用多个示例,用法如下:

再添加一个继承自IDisposable接口的类,并添加一个开放的函数

public class Test2 : IDisposable {

	public void PrintData(string str)
	{
		Debug.Log("--------------:"+str);
	}
	public void Dispose()
	{
		Debug.Log("释放Test2");
	}
}

然后在Using中使用

public class TestSave : MonoBehaviour {
	void Start () {
		using (Test1 test1 = new Test1()) using(Test2 test2 = new Test2())  
		{
			test1.PrintData("This is a test1");
			test2.PrintData("This is a test2");
		}
		print("Using语句结束");
	}
}

输入结果如下:

注意:这里有一点需要注意,释放的顺序和引用顺序相反,第一个引用的实例会在最后被释放


3、推送

Github:https://github.com/KingSun5


4、结语


        若是觉得博主的文章写的不错,不妨关注一下博主,点赞一下博文,另博主能力有限,若文中有出现什么错误的地方,欢迎各位评论指摘。

       QQ交流群:806091680(Chinar)

       该群为CSDN博主Chinar所创,推荐一下!我也在群里!

猜你喜欢

转载自blog.csdn.net/Mr_Sun88/article/details/103932121