MSDNによれば、ulong
からdouble
への変換は暗黙のうちにhttps://msdn.microsoft.com/en-us/library/y5b434w4.aspxとすることができます。私は次のことをコンパイルしようとすると、しかし:ulong []からdouble []に変換できない
public static double arraySum(double[] arrN)
{
double sum = 0;
foreach (double k in arrN)
sum += k;
return sum;
}
ulong[] chessArray = new ulong[64]
//filling values of chessArray, 1st element is 1, 2nd is 2, 3rd is 4 etc.
ulong a = arraySum(chessArray);
私は、コンパイラエラーCS1503を取得する「[]を倍に[] ULONGから変換できません」。どういう理由ですか?私の推測では、この特定のケースでは、最後の配列要素の値が非常に高い、すなわち、chessArray [63]はさらに高くなり(1で)、最大でulong
:18,446,744,073,709,551,615です。
MSDNを使用すると、暗黙のうちに 'ulong'がdouble''に変換できることを言います。 'ulong []'ではなく 'double []'にします。 –
'T'型から' U'型への暗黙的変換が行われているからといって、 'T'型配列から' U'型配列への暗黙的変換が行われているわけではありません。 – Lee
しかし、あなたは二倍から二倍をやっています。これは動作します:ulong a =(ulong)chessArray.Select(x =>(double)x).Sum(); – jdweng