无法想出这个
我有一个类的ArrayList:
// Holds an image
public class productImage
{
public int imageID;
public string imageURL;
public DateTime dateAdded;
public string slideTitle;
public string slideDescrip;
}
public ArrayList productImages = new ArrayList();
productImage newImage = new productImage();
newImage.imageID = 123;
productImages.Add(newImage);
现在我如何访问该属性?
int something = productImages[0].imageID
不起作用!
错误1'对象'不包含 'slideTitle'的定义,没有 扩展方法'slideTitle' 接受第一个类型的参数 可以找到'对象'(是你吗? 缺少使用指令或 装配参考?)
答案 0 :(得分:11)
ArrayList
中的值键入Object
。您需要转换为productImage
才能访问该媒体资源。
int something = ((productImage)productImages[0]).imageId;
更好的解决方案是使用类似List<T>
的强类型集合。您可以指定元素类型为productImage
并完全避免转换。
public List<productImage> productImages = new List<productImage>();
productImage newImage = new productImage();
newImage.imageID = 123;
productImages.Add(newImage);
int something = productImages[0].imageID; // Works
答案 1 :(得分:1)
尝试:
int something = ((productImage)productImages[0]).imageID;
需要从类型对象中转换。
答案 2 :(得分:0)
只是用现代习语来获取这段代码:
public ArrayList productImages = new ArrayList();
productImage newImage = new productImage();
newImage.imageID = 123;
productImages.Add(newImage);
可以重写为:
var productImages = new List<ProductImage> { new ProductImage { ImageID = 123 } };