![](/img/trans.png)
[英]How can I use a common initializer for init properties in a base class?
[英]class can i use the properties of the name space from base class
有一个简单的问题,看起来很简单,但我一直在搜索无法找回的原因。
例如
using System.Collections.Generic;
public class MyBase
{
public string GetName()
{
List<string> ss = new List<string>();
return ss.ToString();
}
}
我可以在没有基础名称空间的情况下,在从基础分类的所有子级中使用List属性吗? 喜欢
public class myChild : MyBase
{
public string GetName()
{
List<string> ss = new List<string>();
return ss.ToString();
}
}
如果没有,为什么? 我在局部类中也注意到了同样的行为..有人可以解释其背后的原因吗?
听起来您在问以下问题
如果在导入名称空间的文件中定义了“父类型”,那么如果我从“父”派生,是否必须重新导入该名称空间?
如果是这样,答案是肯定的。 子类型不继承在定义了父类型的文件中导入的名称空间(部分原因是,对于partial
类型,可以在名称空间冲突的多个文件中定义类型)。 每个文件都是根据自己的导入集进行编译的。
using
语句不是可执行代码,并且不适用于类或类的成员。 相反,它们为编译器提供了有关如何解析类型名称的信息。 using
语句仅在包含它的文件的范围内; 此外,如果它在名称空间声明中,则仅在该名称空间声明中有效。
请注意,一个文件中可能有多个命名空间声明,因此:
namespace N
{
using System.IO;
partial class C
{
public FileInfo SomeFileInfo { get; set; }
}
}
namespace N
{
partial class C
{
public DirectoryInfo SomeDirectoryInfo { get; set; }
}
}
由于using System.IO;
,因此无法解析对DirectoryInfo
的引用using System.IO;
当时不在范围内。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.