Unity3D and C#学习笔记记录 —— Using的用法
目录
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所创,推荐一下!我也在群里!