Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
'salt okunur değişken türü' olduğundan 'değişken' üyeleri değiştirilemiyor
Bu hata, özel bir yapıda olduğu için salt okunur olan bir değişkenin üyelerini değiştirmeye çalıştığınızda oluşur.
Bunun oluştuğu yaygın alanlardan biri foreach döngüleridir. Koleksiyon öğelerinin değerini değiştirmek bir derleme zamanı hatasıdır. Bu nedenle, yapılar da dahil olmak üzere değer türü olan öğelerde değişiklik yapamazsınız. Öğeleri başvuru türü olan bir koleksiyonda, her öğenin erişilebilir üyelerini değiştirebilirsiniz, ancak tüm öğeleri eklemeye veya kaldırmaya veya değiştirmeye çalıştığınızda Derleyici Hatası CS1656 oluşturulur.
Example
Aşağıdaki örnek, bir Bookolduğundan struct CS1654 hatası oluşturur. Hatayı düzeltmek için struct öğesini bir sınıf olarak değiştirin.
using System.Collections.Generic;
using System.Text;
namespace CS1654
{
struct Book
{
public string Title;
public string Author;
public double Price;
public Book(string t, string a, double p)
{
Title=t;
Author=a;
Price=p;
}
}
class Program
{
List<Book> list;
static void Main(string[] args)
{
//Use a collection initializer to initialize the list
Program prog = new Program();
prog.list = new List<Book>();
prog.list.Add(new Book ("The C# Programming Language",
"Hejlsberg, Wiltamuth, Golde",
29.95));
prog.list.Add(new Book ("The C++ Programming Language",
"Stroustrup",
29.95));
prog.list.Add(new Book ("The C Programming Language",
"Kernighan, Ritchie",
29.95));
foreach(Book b in prog.list)
{
//Compile error if Book is a struct
//Make Book a class to modify its members
b.Price +=9.95; // CS1654
}
}
}
}