这是C#中的代码:
public bool IsNation(string country)
{
for (int i = 0; i < Nations.Count; i++)
{
if (Nations[i].Name == country)
{
return true;
}
else { return false; }
}return true;
}
在C#中,您必须初始化变量。但是如果你在下面制作了自己的一个呢?
public class WorldMarket
{
public WorldMarket()
{
Nations = new List<NationBuilder>();
}
internal List<NationBuilder> Nations { get; set; }
public void AddToWorldMarket(NationBuilder nation)
{
Nations.Add(nation);
}
主要思想是从这个结构:
- wm
- Nations
- [0]
- Name "USA"
- stockpile
- [0]
- Name "Coal"
- Quantity "quantity"
- Value "value"
- [1] //Same as above
查找国家名称&#34; USA&#34;或者这个结构中的任何名称都带有一个函数,通过只插入一个带有名称的字符串,它输出{1或0} 或者是对还是对(如果类型== bool)。
我的尝试是这个问题中提出的第一个代码。它试图&#34;旅行&#34;结构并找到您使用此调用输入的国家/地区名称标签。
IsNation(string country);
其中country可以是任何字符串输入。
问题 如果C#希望我用初始值声明每个变量,我该怎么做这个自定义或我可能做的任何自定义类型?
答案 0 :(得分:1)
在构造函数public WorkdMarket()中初始化变量。请参阅以下代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
WorldMarket wm = new WorldMarket();
}
}
public class WorldMarket
{
internal List<NationBuilder> Nations { get; set; }
public WorldMarket()
{
Nations = new List<NationBuilder>() {
new NationBuilder() {
name = "USA",
stockPiles = new List<StockPile>() {
new StockPile() { name = "Coal", quantity = 2, value = "value"},
new StockPile() { name = "Coal", quantity = 2, value = "value"}
}
}
};
}
public void AddToWorldMarket(NationBuilder nation)
{
Nations.Add(nation);
}
}
public class NationBuilder
{
public string name { get; set; }
public List<StockPile> stockPiles { get; set; }
}
public class StockPile
{
public string name { get; set; }
public int quantity { get; set; }
public string value { get; set; }
}
}
答案 1 :(得分:1)
您要求的行是:
public class OutputString {
public String outputHTML(String value ){
value=value.replace("\\'", "'");
value=value.replace("\n\n", "\n");
return value;
}
}
但是,这将初始化为一个新的WorldMarket对象,该对象尚未预填充值。如果国家是静止的,你可以初始化WorldMarket类中的所有国家
WorldMarket con = new WorldMarket();
或者,如果您可以在WorldMarket中使用isNation方法,那么这可能会更好。
public class WorldMarket
{
public WorldMarket()
{
Nations = new List<NationBuilder>() {
new NationBuilder() {
name = "USA",
...
},
new NationBuilder() {
name = "AUS",
...
}
}
}
}
并且主程序中的用法类似于
public class WorldMarket()
{
// various class constructor methods
public int IsNation(string country)
{
// you could access Nations directly here
for (int i = 0; i < Nations.Count; i++)
{
if (Nations[i].Name == country)
{
return 1;
}
// else { return 0; } -- this would exit the loop unnecessarily
}
return 0;
}
}