我试过这个(https://stackoverflow.com/a/14172067/7482204)方法,但我似乎无法弄清楚如何使用类名作为返回类型调用该方法。
项目.cs:
class Item
{
public Item GetItem(string parameter)
{
Item itemObj = new Item();
string query = "select * from items where model = @model";
try
{
using (MySqlConnection connection = Connection.GetConnection())
{
using (MySqlCommand cmd = new MySqlCommand(query,connection))
{
cmd.Parameters.AddWithValue("@model",parameter);
using (MySqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
itemObj.Id = int.Parse(reader["id"].ToString());
itemObj.Model = reader["model"].ToString();
itemObj.Brand = reader["brand"].ToString();
itemObj.CategoryId = int.Parse(reader["category_id"].ToString());
itemObj.SubCategoryId = int.Parse(reader["sub_category_id"].ToString());
itemObj.HasSerialNumber = (int.Parse(reader["serialized"].ToString()) == 1 ? true : false);
}
}
}
}
}
catch (Exception ex)
{
throw new ArgumentException(ex.Message);
}
//Console.WriteLine("End"+itemObj.Model);
return itemObj;
}
}
然后我尝试访问方法 GetItem
Item itemObj = GetItem("params");
但我有一个错误“然后名称 GetItem 在当前上下文中不存在”
最佳答案
将 GetItem 更改为静态的,那么您应该可以调用它
Item item = Item.GetItem("params")
相关说明,根据单一职责主体 (SRP),类 Item 不应为其持久性负责。所以你最好把它分成两个类, Item 和 ItemsRepository 或类似的。然后您应该能够创建存储库的实例并在该实例上调用 GetItem(没有 static
)
class ItemsRepository
{
public Item GetItem(string params)
{
....
}
}
var repo = new ItemsRepo();
var item = repo.GetItem("params");
关于c# - 返回类型为对象的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49079950/