Tôi có lớp City
sau. Mỗi đối tượng thành phố chứa một từ điển mà các khóa là các thẻ ngôn ngữ (ví dụ: "EN", "DE", "FR" ...) và các giá trị nào là tên thành phố bằng các ngôn ngữ tương ứng (ví dụ: Rome/Rom, v.v.) .Thêm giá trị vào từ điển thông qua khởi tạo nội tuyến vùng chứa
public class City:
{
private IDictionary<string, string> localizedNames = new Dictionary<string, string>(0);
public virtual IDictionary<string, string> Names
{
get { return localizedNames ; }
set { localizedNames = value; }
}
}
Hầu hết các thành phố có cùng tên bất cứ ngôn ngữ để các nhà xây dựng City
không thực sự tạo ra các bản đồ tiếng Anh:
public City(string cityName)
{
this.LocalizedNames.Add("EN", cityName);
}
Ở đây có câu hỏi: là có một cách để thêm giá trị khác thông qua khởi tạo nội tuyến?
tôi đã cố gắng biến thể khác nhau trong các cách sau nhưng không thành công ngữ nghĩa (không biên dịch):
AllCities.Add(new City("Rome") { Names["DE"] = "Rom" };
Tôi cũng đã cố gắng tạo ra một từ điển mới, nhưng điều này rõ ràng là ghi đè "EN" tham số:
AllCities.Add(new City("Rome") { Names = new Dictionary<string, string>() { { "DE", "Rom" } } };
Bất kỳ ai biết nếu điều này là có thể?
Lưu ý: * constructor khởi tạo * không phải là thuật ngữ thích hợp. Suy nghĩ ** đối tượng ** và ** bộ sưu tập ** khởi tạo, không ai trong số đó được thực hiện thông qua một hàm tạo. –
bạn đã đúng, tôi đã chỉnh sửa tiêu đề, nhờ –