我最近遇到了一个问题,我使用的是C#,它是通过使用反射设置一个私有成员来解决的.
我惊呆了,发现设置私有成员/字段并运行私有方法是C#中允许和可能的事情.这不是一个如何做这些事情的问题,他们有很好的记录,我的问题是:为什么?
如果将字段/成员/方法设置为私有/内部,为什么C#作为一种语言允许将这些字段设置在范围之外?我认为这会抛出某种异常.如果类要求更改或设置它们不会有方法或构造函数?
我正在读取CSV文件,一切正常.所有字段都会转到正确的位置,但它会将®转换为 .
var engine = new FileHelperEngine(typeof(T));
return engine.ReadStream(new StreamReader(stream)) as T[];
Run Code Online (Sandbox Code Playgroud)
有关如何防止这种情况发生的任何想法?
编辑:
在花钱的帮助下,我得到了这个工作:
var engine = new FileHelperEngine(typeof(T), Encoding.UTF8);
return engine.ReadStream(new StreamReader(stream, Encoding.UTF8)) as T[];
Run Code Online (Sandbox Code Playgroud)
我必须在两个地方设置编码才能工作.否则我看到了奇怪的结果.