我开始使用C#进行冒险并且不了解所有技术,但我已经知道我想要实现的目标:
public class Product
{
public string Name { get; set; }
public double Price { get; set; }
//public ??? Category { get; set; }
}
'类别'类型应该是自定义类型(?),它有8个可能的名称字符串值(食物,衣服等)和专门用于这些名称的图标(食物 - apple.jpg,衣服 - tshirt.jpg等等)
我该怎么做?
答案 0 :(得分:4)
通常,在使用固定大小的类别(在您的情况下为\App\Mail\TestMail
)时,我们会使用8
类型:
enum
要添加图标,字符串等,我们可以实现扩展方法:
public enum ProductCategory {
Food,
Clothes,
//TODO: put all the other categories here
}
最后
public static class ProductCategoryExtensions {
// please, notice "this" for the extension method
public static string IconName(this ProductCategory value) {
switch (value) {
case ProductCategory.Food:
return "apple.jpg";
case ProductCategory.Clothes:
return "tshirt.jpg";
//TODO: add all the other categories here
default:
return "Unknown.jpg";
}
}
}
用法
public class Product {
public string Name { get; set; }
public double Price { get; set; } // decimal is a better choice
public ProductCategory Category { get; set; }
}
答案 1 :(得分:0)
您可以使用预定义值定义Category类,如下所示:
public class Category
{
public static Category Food = new Category("Food", "apple.jpg");
// rest of the predefined values
private Category(string name, string imageName)
{
this.ImageName = imageName;
this.Name = name;
}
public string Name { get; private set; }
public string ImageName { get; private set; }
}
public class Product
{
public string Name { get; set; }
public double Price { get; set; }
public Category Category { get; set; }
}
然后,在您的代码中,您可以设置如下产品:
var product = new Product {Name= "product1", Price=1.2, Category = Category.Food};
答案 2 :(得分:-3)
首先,您要创建一个新的类,即自定义类型
public class Category {
// I recommend to use enums instead of strings to archive this
public string Name { get; set; }
// Path to the icon of the category
public string Icon { get; set; }
}
现在,在您的产品中,您可以将注释掉的行更改为:
// First Category is the type, the second one the Name
public Category Category { get; set; }
现在,您可以使用以下类别创建新产品:
var category = new Product() {
Name = "ASP.NET Application",
Price = 500,
Category = new Category() {
Name = "Software",
Icon = "Software.jpg"
}
}
现在,当您想要使用其他类别创建另一个产品时,只需重复过程即可。您还可以创建一个Categories数组,然后使用数组元素,例如类别=类别[3]。因此,您可以为食物创建一个类别,一个用于衣服等,将它们存储在阵列中并将它们用于您的产品。