Saya mencoba kode berikut. Garis dengan kesalahan ditunjukkan.
int[] myfunction()
{
{
//regular code
}
catch (Exception ex)
{
return {0,0,0}; //gives error
}
}
Bagaimana saya bisa mengembalikan literal array seperti string literal?
const
bidang. Ini tidak terjadi dengan sintaks inisialisasi array.Jawaban:
Kembalikan larik
int
seperti ini:return new int [] { 0, 0, 0 };
Anda juga dapat secara implisit mengetikkan array - kompilator akan menyimpulkan bahwa itu seharusnya
int[]
karena array tersebut hanya berisiint
nilai:return new [] { 0, 0, 0 };
sumber
new int [] {0,0,0}
juga berhasil. Akan lebih jelas menurut saya.Blorgbeard benar, tetapi Anda mungkin juga berpikir untuk menggunakan yang baru untuk kelas Tuple .NET 4.0. Saya merasa lebih mudah untuk bekerja jika Anda memiliki sejumlah item untuk dikembalikan. Seperti jika Anda selalu perlu mengembalikan 3 item dalam array Anda, tupel 3-int memperjelas apa itu.
return new Tuple<int,int,int>(0,0,0);
atau sederhananya
return Tuple.Create(0,0,0);
sumber
return new List<int>(new int[]{0,0,0});
List<int>(Enumerable.Repeat(0, 3))
akan lebih baik?jika array memiliki ukuran tetap dan Anda ingin mengembalikan yang baru dengan angka nol
return new int[3];
sumber