未找到“名称”的定义
本文关键字:定义 名称 | 更新日期: 2023-09-27 17:56:26
我在命名空间中定义了一个类:
namespace Artworking
{
public class Category
{
int ID {get;set;}
string Name {get;set;}
public Category(int ID, string Name)
{
this.ID = ID;
this.Name = Name;
}
public Category(int ID)
{
using (CrystalCommon.MainContext db = new CrystalCommon.MainContext())
{
var q = (from c in db.tblArtworkTemplateCategories where c.ID == ID select c).SingleOrDefault();
this.ID = q.ID;
this.Name = q.CatName;
}
}
}
}
在我的内容页面上,我从另一个函数获取所有类别,并将它们添加到列表框控件:
// Category select
Artworking.Category[] Cats = Artworking.CommonFunctions.FetchAllCategories(Master.LoggedInUser.Client.ID);
foreach(Artworking.Category C in Cats){
ListItem NewItem = new ListItem();
NewItem.Text = C.Name;
NewItem.Value = C.ID;
CategorySelect.Items.Add(NewItem);
}
但是,由于某种原因,它在NewItem.Text = C.Name
行上抛出:
CS1061:"艺术品类别"没有 包含"名称"的定义,但不包含 扩展方法"名称"接受 类型的第一个参数
我对这个有点困惑,我认为这一切都定义正确了?
可以找到"艺术品类别" (您是否缺少使用指令或 程序集引用?
您仍然需要在 Category
类中的属性声明之前添加public
。
你的属性Name
应该标记为public
(ID
应该基于你尝试在类外访问它的事实。
public class Category
{
public int ID { get;set; }
public string Name { get;set; }
....
}
另一个小建议 - 为什么不通过 using
语句在代码中引用 Artworking
命名空间?这将使您的代码更整洁,而不必在多行中不断键入完整的命名空间:
using Artworking;
// Category select
Category[] Cats = CommonFunctions.FetchAllCategories(Master.LoggedInUser.Client.ID);
foreach(Category C in Cats)
{
....
}