Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用值c的数目返回整数#_C# - Fatal编程技术网

C# 使用值c的数目返回整数#

C# 使用值c的数目返回整数#,c#,C#,我有两个字符串,g1和g2。我随机决定是使用g1还是g2,也就是说,像硬币一样。我如何着手做像g+硬币()这样的事情;要输出g1或g2,取决于coin()返回的是什么?如何: return (coin() == 'heads' ? g1 : g2); 将两者存储在一个数组中: string[] g = { "g1", "g2" }; var gs = new[] { g1, g2 }; var result = gs[coin() - 1]; 然后,滚动一个随机数: var random

我有两个字符串,g1和g2。我随机决定是使用g1还是g2,也就是说,像硬币一样。我如何着手做像g+硬币()这样的事情;要输出g1或g2,取决于coin()返回的是什么?

如何:

return (coin() == 'heads' ? g1 : g2);

将两者存储在一个数组中:

string[] g = { "g1", "g2" };
var gs = new[] { g1, g2 };
var result = gs[coin() - 1];
然后,滚动一个随机数:

var random = new Random();
int index = random.Next(2);
最后,获取该索引处的字符串:

string choice = g[index];

不能在C#中使用局部变量名(尽管可以通过反射使用类型成员名)

如果,您可以使用普通的旧

if (coin() == 1)
    result = g1;
else
    result = g2;
或者可以使用数组:

string[] g = { "g1", "g2" };
var gs = new[] { g1, g2 };
var result = gs[coin() - 1];
使用此代码:

Random rd = new Random();

string strtouse = "g" + (rd.Next(2) + 1);
现在,您可以使用以下代码段

string test = (string)this.GetType().GetField(strtouse).GetValue(this);

虽然这不是一个实现你想要的东西的好方法。使用字典是一种更好的方法。

你试过什么?它有用吗?若否,原因为何?就目前而言,这“不是一个真正的问题”。您是如何编写
coin
方法的?添加一些代码。当弹出时,我正在弹出一个
switch
语句!咖啡时间可能会考虑使用静态随机实例或至少在类中使用相同的实例,以便对< SelectOne > <代码>的快速调用不会导致相同的“随机”值。