我想知道 Read 和 Load 之间的语义差异(在C#中)。比较例如,我没有看到区别。
System.IO.MemoryStream.Read()
System.Console.Read()
System.IO.StreamReader.Read()
System.IO.File.ReadAllText()
vs
System.Xml.XmlDocument.Load()
System.Xml.Linq.XDocument.Load()
System.Reflection.Assembly.Load()
由于我希望对我的程序进行一致的命名,只需从持久存储和更高级别的函数中获取文件,这些函数也会初始化,交叉引用和错误检查,我请求您提供输入。
答案 0 :(得分:5)
在您的示例中,“读取”通常是指读取数据的部分。这是为了限制在给定操作中需要存储和/或处理的数据量,还是因为数据本身不能立即全部可用(例如Console.Read()
或从网络读取流),基本行为是相同的:数据处理的数量小于可以或将要处理的整个数据集。
有异常ReadAllText()
,实际上确实一次读取所有数据。但这是一种类型,其中所有其他表现相似的方法也使用“Read”一词。在该上下文中使用“Read”使API保持一致,并且未能使用“Load”并不会显着妨碍对API的理解(特别是因为方法名称也明确指出“所有文本”...没有人会惊讶地看到所有在那种情况下阅读的文本,对吗?:))。
在使用“加载”的示例中,它们会一次性消耗所有数据,并将其转换为其他数据,例如: XML DOM或程序集。这是一种截然不同的操作,仅仅是读取数据并且至多对其进行最少的处理(例如,解码某些文本格式)。与“读取”操作相反,“加载”将始终消耗所有数据,而不是允许一次只读取一部分的选项。
答案 1 :(得分:3)
阅读API是关于:
在另一端加载API: