Saya bingung mengapa kode ini tidak dapat dikompilasi: var result = $"{fieldName}{isDescending ? " desc" : string.Empty}"; Jika saya membaginya, itu berfungsi dengan baik: var desc = isDescending ? " desc" : string.Empty; var result =
Saya bingung mengapa kode ini tidak dapat dikompilasi: var result = $"{fieldName}{isDescending ? " desc" : string.Empty}"; Jika saya membaginya, itu berfungsi dengan baik: var desc = isDescending ? " desc" : string.Empty; var result =
Dengan C # 6.0 dalam pratinjau VS2015 kami memiliki operator baru ?., yang dapat digunakan seperti ini: public class A { string PropertyOfA { get; set; } } ... var a = new A(); var foo = "bar"; if(a?.PropertyOfA != foo) { //somecode } Apa
Saya membuat proyek sampel, dengan C # 6.0 barang - propagasi nol dan inisialisasi properti sebagai contoh, menetapkan versi target .NET 4.0 dan itu ... berfungsi. public class Cat { public int TailLength { get; set; } = 4; public Cat Friend { get; set; } public string Mew() { return "Mew!";...
Versi 6.0 mendapat fitur baru nameof , tetapi saya tidak dapat memahami tujuannya, karena hanya mengambil nama variabel dan mengubahnya ke string pada kompilasi. Saya pikir itu mungkin memiliki beberapa tujuan ketika menggunakan <T>tetapi ketika saya mencoba nameof(T)hanya mencetak sayaT...
Saya menemukan beberapa kode yang mengatakan public int MaxHealth => Memory[Address].IsValid ? Memory[Address].Read<int>(Offs.Life.MaxHp) : 0; Sekarang saya agak akrab dengan ekspresi Lambda. Saya hanya belum melihatnya menggunakannya dengan cara ini. Apa yang akan menjadi...
Saya telah melalui fitur terbaru yang diperkenalkan di C # 6.0 dan hanya mengikuti contoh penginisialisasi properti otomatis, class NewSample { public Guid Id { get; } = Guid.NewGuid(); } tetapi IDE saya tidak mengenali sintaks. Saya bertanya-tanya bagaimana saya bisa mengaktifkan C # 6.0 di...
Saya menguji Visual Studio 2015 dengan C # 6.0 tetapi fitur bahasa tidak berfungsi. Dalam aplikasi web MVC, kode berikut dapat dikompilasi: if (!string.IsNullOrWhiteSpace(Model.Profile?.TypeName)) { // More logic here... } Namun, ketika saya menjalankan aplikasi melalui Debug dan IIS...
Latar Belakang Kami memiliki proyek yang sedang kami kembangkan di VS 2015 dengan C # 6 diaktifkan yang terkadang perlu dibuka oleh pengembang menggunakan VS 2013 tanpa C # 6. Kami tidak berniat untuk menggunakan C # 6 dalam solusi khusus ini (sebanyak yang saya inginkan). Masalah Visual...
Saya telah menemukan bahwa sementara interpolasi string benar-benar baik ketika diterapkan pada panggilan format string basis kode saya yang sudah ada, mengingat batas kolom yang umumnya disukai, string dengan cepat menjadi terlalu panjang untuk satu baris. Terutama ketika ekspresi yang...
Sebagai bagian dari dokumentasi Roslyn tentang GitHub, ada halaman yang disebut status implementasi fitur Bahasa , dengan fitur bahasa yang direncanakan untuk C # dan VB. Salah satu fitur yang saya tidak dapat membungkus kepala saya adalah private protectedpengubah akses: private protected string...
Di C # 6 ada fitur baru: string interpolasi. Ini memungkinkan Anda menempatkan ekspresi langsung ke dalam kode, daripada mengandalkan indeks: string s = string.Format("Adding \"{0}\" and {1} to foobar.", x, this.Y()); Menjadi: string s = $"Adding \"{x}\" and {this.Y()} to foobar."; Namun, kami...
Memperbarui jenis proyek situs Web yang sudah ada Visual Studio 2015, saya mengubah kerangka kerja menjadi 4.6. Saya kemudian berharap memiliki semua fitur baru yang tersedia dalam kode saya di belakang file. Sayangnya saya mendapatkan kesalahan seperti: Kesalahan CS8026: Fitur 'properti...
Saya melihat beberapa fitur baru di C # 6, khususnya, "menggunakan statis" . using static adalah jenis baru penggunaan klausa yang memungkinkan Anda mengimpor anggota statis jenis langsung ke dalam cakupan. (Bagian bawah posting blog) Idenya adalah sebagai berikut, menurut beberapa...
Di C # 6, Anda dapat menggunakan nameof()operator untuk mendapatkan string yang berisi nama variabel atau tipe. Apakah ini dievaluasi pada waktu kompilasi, atau saat runtime melalui beberapa API
Saya ingin menggunakan C # 6 dalam proyek saya (propagasi null, fitur lainnya). Saya telah menginstal VS 2015 di PC saya dan berfungsi dengan baik dan membuat kode pengujian seperti var user = new SingleUserModel(); //all model fields are null var test = user.User?.Avatar?["blah"]; Tetapi...
Saya sering menggunakan operator penyebaran null dalam kode saya karena memberi saya kode yang lebih mudah dibaca, khususnya dalam kueri yang panjang, saya tidak perlu memeriksa null setiap kelas yang digunakan. Kode berikut memunculkan kesalahan kompilasi bahwa kita tidak dapat menggunakan...
Hingga saat ini, saya dapat menggunakan konstruktor utama, seperti: public class Test(string text) { private string mText = text; } Untuk dapat melakukan ini, di Visual Studio CTP sebelumnya, saya harus menambahkan ini ke file
Saya membuat properti otomatis: public int Foo { get; } Ini hanya pengambil. Tetapi ketika saya membangun konstruktor, saya dapat mengubah nilainya: public MyClass(string name) { Foo = 5; } Mengapa mungkin, meskipun ini hanya untuk mendapatkan?
Sebuah fitur baru di C # 6.0 memungkinkan untuk mendeklarasikan variabel di dalam metode TryParse. Saya punya beberapa kode: string s = "Hello"; if (int.TryParse(s, out var result)) { } Tetapi saya menerima kesalahan kompilasi: Apa yang saya lakukan salah? PS: dalam pengaturan proyek C #...
Apakah ini didukung? Jika ya, apakah ada trik untuk mengaktifkannya? Saya berasumsi Razor tidak menggunakan kompiler yang cukup baru ...? VS2015 IDE tampaknya baik-baik saja dengan itu tetapi pada saat runtime saya dapatkan CS1056: Karakter tak terduga '$'