配合自动生成资源配置路径文件使用的资源加载方法脚本

 代码

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

public class ResourcesManager : MonoBehaviour
{
    private static Dictionary<string, string> dic = new Dictionary<string, string>();
    static ResourcesManager()
    {
        TxtLoadDic();
    }
    private static void TxtLoadDic()
    {
        string mapTxt = Resources.Load<TextAsset>("ResMap").text;
        string line = null;
        using (StringReader reader = new StringReader(mapTxt))
        {
            while ((line = reader.ReadLine()) != null)
            {
                var keyValue = line.Split('=');
                dic.Add(keyValue[0], keyValue[1]);
            }
        }
    }
    private static string GetValue(string key)
    {
        if (dic.ContainsKey(key)) { return dic[key]; }
        return null;
    }

    public static T load<T>(string path) where T : Object
    {
        return Resources.Load<T>(GetValue(path));
    }
}

StringReader解释

StringReader是System.IO命名空间中的一个类,用于从字符串中读取字符流。它提供了一些方法和属性,用于读取和操作字符串中的字符。

使用StringReader类可以方便地从字符串中逐行读取文本内容,类似于从文件中读取文本行。

以下是StringReader类的一些常用方法和属性:

  1. ReadLine():从字符串中读取一行文本,并将其作为字符串返回。如果已经读取到字符串的末尾,则返回null。

  2. Read():从字符串中读取一个字符,并将其作为整数返回。如果已经读取到字符串的末尾,则返回-1。

  3. Peek():返回下一个要读取的字符,但不移动读取位置。

  4. Close():关闭StringReader对象,并释放相关的资源。

使用StringReader类可以将字符串作为输入源,逐行读取其中的文本内容。例如:

string text = "Line 1\nLine 2\nLine 3";
StringReader reader = new StringReader(text);

string line;
while ((line = reader.ReadLine()) != null)
{
    Console.WriteLine(line);
}

reader.Close();

在上面的示例中,我们创建了一个StringReader对象,并将字符串"Line 1\nLine 2\nLine 3"作为输入源。然后,使用while循环和ReadLine()方法逐行读取文本内容,并将每行文本输出到控制台。

需要注意的是,使用StringReader类时,要确保在使用完毕后调用Close()方法来关闭StringReader对象,以释放相关的资源。

总结一下,StringReader是System.IO命名空间中的一个类,用于从字符串中读取字符流。它提供了一些方法和属性,用于读取和操作字符串中的字符。使用StringReader类可以方便地从字符串中逐行读取文本内容。

using(){}是什么用法

using语句是C#中的一种语法结构,用于在代码块结束时自动释放资源。它可以用于管理实现了IDisposable接口的对象,确保在使用完毕后正确地释放资源。

using语句的一般语法如下:

using (资源对象声明)
{
    // 使用资源对象的代码
}

在using语句中,资源对象声明是一个用于声明和初始化资源对象的语句。资源对象必须实现IDisposable接口,该接口定义了Dispose()方法,用于释放资源。

在代码块中,可以使用资源对象进行操作。当代码块结束时,无论是正常结束还是发生了异常,using语句都会自动调用资源对象的Dispose()方法来释放资源。

以下是一个使用using语句的示例:

using (FileStream fileStream = new FileStream("file.txt", FileMode.Open))
{
    // 使用fileStream进行文件操作
    // ...
} // 在这里自动调用fileStream.Dispose()释放资源

在上面的示例中,使用using语句创建了一个FileStream对象,并将其赋值给fileStream变量。在代码块中,可以使用fileStream进行文件操作。当代码块结束时,无论是正常结束还是发生了异常,using语句会自动调用fileStream.Dispose()方法来释放文件流的资源。

使用using语句可以确保资源对象在使用完毕后被正确释放,避免资源泄漏和内存泄漏的问题。

需要注意的是,using语句只能用于管理实现了IDisposable接口的对象。如果资源对象没有实现IDisposable接口,就不能使用using语句来管理它。


注:本人学习笔记,内容仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值