【发布时间】:2020-03-22 21:55:42
【问题描述】:
我有以下数组:
private static readonly double[,] positionsOfCustomer = new double[,] {
{47.645892, -122.336954}, // Gasworks Park
{47.688741, -122.402965}, // Golden Gardens Park
{47.551093, -122.249266}, // Seward Park
{47.555698, -122.065996}, // Lake Sammamish Park
{47.663747, -122.120879}, // Marymoor Park
{47.857295, -122.316355}, // Meadowdale Beach Park
{47.530250, -122.393055}, // Lincoln Park
{47.503266, -122.200194}, // Gene Coulon Park
{47.591094, -122.226833}, // Luther Bank Park
{47.544120, -122.221673} // Pioneer Park
};
我更喜欢命名这些值而不是使用 cmets,所以我尝试使用 Visual Studio 来提取这些值,例如:
private static readonly object gasworksPark = { 47.645892, -122.336954 };
// etc.
private static readonly double[,] positionsOfCustomer = new double[,] {
gasworksPark,
// etc.
};
但这至少会导致两个错误:
- 只能使用数组初始化表达式来分配数组类型。改用新的表达方式。
- 需要嵌套数组初始化器。
如何以编译器能够理解的方式提取这些值?
【问题讨论】:
-
定义“提取”
-
我不在我的 pc atm 上,但不是启动该字段,您可以尝试调用一个添加值的静态方法吗?方法将需要检查或在多次调用时总是添加。
-
@MichaelRandall,删除或取出。如上所示,我想命名这些值,而不是使用 cmets 来描述它们(c.f. "Clean Code")
-
也许你可以用字典?或元组数组
-
在这种情况下我会使用字典
标签: c# multidimensional-array double refactoring extract