Fork me on GitHub

C#索引器demo

//简单实例
public class MyClass { private string[] myArray = new string[5]; // 索引器 public string this[int index] { get { return myArray[index]; } set { myArray[index] = value; } } } public class Program { static void Main(string[] args) { MyClass myObject = new MyClass(); // 设置索引器的值 myObject[0] = "Hello"; myObject[1] = "World"; // 获取索引器的值 Console.WriteLine(myObject[0]); // 输出: Hello Console.WriteLine(myObject[1]); // 输出: World } } //多维数组实例 public class MyMatrix { private int[,] matrix = new int[3, 3]; // 索引器 public int this[string row, string column] { get { int rowIndex = GetRowIndex(row); int columnIndex = GetColumnIndex(column); return matrix[rowIndex, columnIndex]; } set { int rowIndex = GetRowIndex(row); int columnIndex = GetColumnIndex(column); matrix[rowIndex, columnIndex] = value; } } private int GetRowIndex(string row) { // 在此处根据行名返回相应的行索引 // 这里只是一个示例,您需要根据实际需求进行实现 if (row == "A") return 0; else if (row == "B") return 1; else if (row == "C") return 2; else throw new ArgumentException("Invalid row name"); } private int GetColumnIndex(string column) { // 在此处根据列名返回相应的列索引 // 这里只是一个示例,您需要根据实际需求进行实现 if (column == "X") return 0; else if (column == "Y") return 1; else if (column == "Z") return 2; else throw new ArgumentException("Invalid column name"); } } public class Program { static void Main(string[] args) { MyMatrix myMatrix = new MyMatrix(); // 设置索引器的值 myMatrix["A", "X"] = 1; myMatrix["B", "Y"] = 2; // 获取索引器的值 Console.WriteLine(myMatrix["A", "X"]); // 输出: 1 Console.WriteLine(myMatrix["B", "Y"]); // 输出: 2 } }

 

posted @ 2024-02-21 15:49  WantRemake  阅读(4)  评论(0编辑  收藏  举报