gpt4 book ai didi

c# - 编程练习出错

转载 作者:行者123 更新时间:2023-11-30 21:39:02 25 4
gpt4 key购买 nike

所以我有这个简单的(对其他人来说)练习,我需要创建一个药房并添加这两种药物。我有一个名为 Drugs 的类,其中包含药物的属性:

public class drugattr
{
public int id;
public string drugName;
public string DrugDesc;
public int drugIntensity ;

public drugattr(int id, string drugName, string DrugDesc, int drugIntensity)
{
this.id = id;
this.drugName= drugName;
this.DrugDesc = DrugDesc;
this.drugIntensity = drugIntensity ;
}
}

然后我有一个具有药房属性的药房类:

 public class pharmacyatrr
{
public string PharmacyName;
public string PharmacyTown;
public List<drugattr> Atrributes= null; // the list with the drugs' attributes


public pharmacyatrr(string pharmacyName, string pharmacyTown, List<drugattr> atrributes)
{
this.PharmacyName = pharmacyName;
this.PharmacyTown = pharmacyTown;
this.Atrributes = atrributes;
}

我有我的主要类(class),我需要在其中创建一个药房并为其分配几种药物。

 public class Program : pharmacyatrr
{
public Program(string PharmacyName, string PharmacyTown , List<drugattr> Atrributes) : base(PharmacyName, PharmacyTown , Atrributes)
{
this.PharmacyName = pharmacyName;
this.PharmacyTown = pharmacyTown;
this.Atrributes = atrributes;

}

static void Main(string[] args)
{
drugattr drugA = new drugattr(1, "DrugA_Name", "Very STrong", 20);
drugattr drugB = new drugattr(2, "DrugB_Name", "Mild Strong", 8);

pharmacyatrr pharmacy1 = new pharmacyatrr("PharmacyName", "Town", drugA); // the problem is here

}
}

因此,如果我尝试添加 drugB,我会得到预期的错误,它只能接受 3 个参数。

如果我创建一个具有相同名称和城镇但使用 drugB 的 pharmacy2,那不会创建一个新的 pharmacy?

我需要一个药房有多个药品条目...

关于如何解决这个问题的任何提示?我对 C# 和编程还很陌生,所以请不要对我太苛刻!

最佳答案

这应该有效。几乎每个人都说过,但只是完整的代码。

毒品类

class DrugAttribute
{
public int id;
public string drugName;
public string drugDescription;
public int drugIntensity;


public DrugAttribute(int id, string drugName, string drugDescription, int drugIntensity)
{
this.id = id;
this.drugName = drugName;
this.drugDescription = drugDescription;
this.drugIntensity = drugIntensity;
}
}

还有药学课

 class PharmacyAtrribute
{
public string pharmacyName;
public string pharmacyTown;
public List<DrugAttribute> drugList = null;

public PharmacyAtrribute(string pharmacyName, string pharmacyTown, List<DrugAttribute> drugList)
{
this.pharmacyName = pharmacyName;
this.pharmacyTown = pharmacyTown;
this.drugList = new List<DrugAttribute>(drugList);
}
}

和主类

class Program : PharmacyAtrribute
{
public Program(string pharmacyName, string pharmacyTown, List<DrugAttribute> drugList) : base(pharmacyName, pharmacyTown, drugList)
{
this.pharmacyName = pharmacyName;
this.pharmacyTown = pharmacyTown;
this.drugList = new List<DrugAttribute>(drugList);
}

static void Main(string[] args)
{
DrugAttribute drugA = new DrugAttribute(1, "DrugA_Name", "Very Strong", 20);
DrugAttribute drugB = new DrugAttribute(2, "DrugB_Name", "Mild Strong", 8);

List<DrugAttribute> listOfDrugs = new List<DrugAttribute>{ drugA, drugB };

PharmacyAtrribute pharmacy1 = new PharmacyAtrribute("PharmacyName", "Town", listOfDrugs);
}
}

我相信您可能已经注意到我更改了一些名称。我将只提供一些有关命名约定的有用提示。对于类名,Microsoft 鼓励使用 Pascal 大写样式。因此,在您的情况下,drugattr 将是 DrugAttr。对于变量和属性,鼓励使用 Camel Case。所以

public string PharmacyName; 
public string PharmacyTown;
public List<drugattr> Atrributes= null;

应该变成

public string pharmacyName; 
public string pharmacyTown;
public List<drugattr> atrributes= null;

有关命名约定的更多信息,请查看此 https://msdn.microsoft.com/en-us/library/x2dbyw72(v=vs.71).aspx

对于名称,最好尽可能具有描述性,因此将您的类命名为 DrugAttributes 可能是个好主意。即使没有注释,任何正在阅读您的代码的人都会确切地知道它是关于什么的(尽管注释也是必须的)。

即使只是一个简单的学习练习,用传统的风格练习总是好的。

关于c# - 编程练习出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45426243/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com