我是OO新手......到现在为止我使用的是VB6。 我有一节课:
public class clocation_base
{
public clocation_base()
{
}
public string ID { get; set; }
public string Name { get; set; }
public Int32 ImagesCurrent { get; set; }
public Int32 ImagesTotal { get; set; }
public DateTime? ImagesLastUpload { get; set; }
public decimal Lon { get; set; }
public decimal Lat { get; set; }
public int DistanceInMeter { get; set; }
public int Proofed { get; set; }
public DateTime Created { get; set; }
public string PreviewImg1 { get; set; }
public string PreviewImg2 { get; set; }
public string PreviewImg3 { get; set; }
public string PreviewImg4 { get; set; }
}
现在我想用一个列表(另一个类)“扩展”这个类。 这是我的“清单:
public class clocation_media
{
public string URL { get; set; }
public string Type { get; set; }
public DateTime? Timestamp { get; set; }
}
我现在用媒体列表“扩展”我的clocation_base:
public class clocation_extended : clocation_base
{
List<clocation_media> media { get; set; }
public clocation_extended()
{
media = new List<clocation_media>();
}
}
在我的代码中我使用:
clocation_extended mTest = new clocation_extended();
mTest.Name = "Locationname";
现在我想使用:
mTest.media.Add("http://contoso.com/img1.jpg", "Image", null);
但这不起作用。
mTest.media...
不存在......
任何人都可以帮助我吗?
答案 0 :(得分:3)
类成员在C#中是私有的,因此您必须公开media
。
public class clocation_extended : clocation_base
{
public List<clocation_media> media { get; set; }
public clocation_extended()
{
media = new List<clocation_media>();
}
}
另请注意
mTest.media.Add("http://contoso.com/img1.jpg", "Image", null);
不起作用,因为media
的类型为List<clocation_media>
,因此您必须添加clocation_media
的实例:
var media = new clocation_media
{
Type = "Image",
URL = "http://contoso.com/img1.jpg"
};
mTest.media.Add(media);
答案 1 :(得分:0)
必须设置List<clocation_media> media { get; set; }
public
,否则您无法从课堂外访问它。默认情况下,C#类中的成员为private
。如果您需要除private
以外的其他内容,则必须指定访问者。