Ele*_*ena 2 .net c# compiler-errors
为什么不能将类IEnumerable<T>作为类中的属性用作类似的东西
public class Example
{
public IEnumerable<Int32> Ids {get; private set;}
publicIEnumerable<string> Names {get; private set;}
}
Run Code Online (Sandbox Code Playgroud)
对不起问题不是它没有编译,我错过了公共访问者在这里写的东西,问题是为什么不使用IEnumerable的属性.但是当我进一步阅读时,我意识到如果我们只需要迭代一些东西而不是修改(添加,删除)而不是这个(使用IEnumerable)是完全可以接受的.
Jon*_*eet 12
问题是类中成员的默认可访问性已经是私有的,因此您的代码等效于:
public class Example
{
private IEnumerable<int> Ids {get; private set;}
private IEnumerable<string> Names {get; private set;}
}
Run Code Online (Sandbox Code Playgroud)
这无法编译,因为当您为getter或setter包含额外的访问修饰符时,它必须比属性的整体访问更具限制性.它不是在这种情况下.
如果你公开整体属性,它将编译没有问题:
public class Example
{
public IEnumerable<int> Ids {get; private set;}
public IEnumerable<string> Names {get; private set;}
}
Run Code Online (Sandbox Code Playgroud)
(System.Collections.Generic当然,假设你有一个命名空间的using指令.)
| 归档时间: |
|
| 查看次数: |
188 次 |
| 最近记录: |