cod*_*ave 6 c# linq language-agnostic programming-languages
我想知道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()因为我希望对我的程序进行一致的命名,只需从持久存储中获取文件以及初始化,交叉引用和错误检查的更高级别函数,我请求您提供输入.
在您的示例中,"读取"通常是指读取部分数据.这是为了限制在给定操作中需要存储和/或处理的数据量,还是因为数据本身不能立即全部可用(例如Console.Read(),从网络流中读取),行为是相同的:数据处理的数量小于可以或将要处理的整个数据集.
有一个例外ReadAllText(),实际上确实一次读取所有数据.但这是一种类型,其中所有其他表现相似的方法也使用"Read"一词.在该上下文中使用"Read"使API保持一致,并且未能使用"Load"并不会显着妨碍对API的理解(特别是因为方法名称也明确指出"所有文本"...没有人会惊讶地看到所有在那种情况下阅读的文本,对吧?:)).
在使用"Load"的示例中,它们一次消耗所有数据,并将其转换为其他数据,例如XML DOM或程序集.这是一种截然不同的操作,仅仅是读取数据并且最多只对其进行最少的处理(例如,解码某些文本格式).与"读取"操作相反,"加载"将始终消耗所有数据,而不是允许一次只读取一部分的选项.