通常会看到额外的值或属性传递到
之类的内容中 new {...}
new {...}
部分叫什么?它是一个对象吗?它看起来不像是一个对象,因为新对象{...}会导致错误。
我经常使用它,但实际上我并没有深入了解#include <stdio.h>
#include <malloc.h>
double ****PsiDDiffj,
****PsiDDiffi,
****sDDiff,
r_h = 10;
int ****NorDiff,
numv = 100;
Generate_PsiDuopolyDiff() {
int aa, bb, cc, dd;
double vv_ja, vv_jb, vv_ia, vv_ib, deltav = r_h / numv, ll;
PsiDDiffj = (double ****)malloc((numv + 2) * sizeof(double***));
PsiDDiffi = (double ****)malloc((numv + 2) * sizeof(double***));
sDDiff = (double ****)malloc((numv + 2) * sizeof(double***));
NorDiff = (int ****)malloc((numv + 2) * sizeof(int***));
for (aa = 0; aa <= numv; aa++) {
PsiDDiffj[aa] = (double ***)malloc((numv + 2) * sizeof(double**));
PsiDDiffi[aa] = (double ***)malloc((numv + 2) * sizeof(double**));
sDDiff[aa] = (double ***)malloc((numv + 2) * sizeof(double**));
NorDiff[aa] = (int ***)malloc((numv + 2) * sizeof(int**));
for (bb = 0; bb <= numv; bb++) {
PsiDDiffj[aa][bb] = (double **)malloc((numv + 2) * sizeof(double*));
PsiDDiffi[aa][bb] = (double **)malloc((numv + 2) * sizeof(double*));
sDDiff[aa][bb] = (double **)malloc((numv + 2) * sizeof(double*));
NorDiff[aa][bb] = (int **)malloc((numv + 2) * sizeof(int*));
for (cc = 0; cc <= numv; cc++) {
PsiDDiffj[aa][bb][cc] = (double *)malloc((numv + 2) * sizeof(double )); //where the error happened
PsiDDiffi[aa][bb][cc] = (double *)malloc((numv + 2) * sizeof(double ));
sDDiff[aa][bb][cc] = (double *)malloc((numv + 2) * sizeof(double ));
NorDiff[aa][bb][cc] = (int *)malloc((numv + 2) * sizeof(int ));
}
}
}
}
void
main() {
Generate_PsiDuopolyDiff();
}
语法是什么。
答案 0 :(得分:3)
这是一个anonymous type对象 - C#的一个功能,而不是MVC5。编译器创建一个具有只读属性的匿名类型,匹配initalizer中使用的名称和类型。在运行时,会创建此类型的实例,MVC使用反射对其属性进行迭代。
答案 1 :(得分:1)
在此处添加更多信息,匿名类型是使用new关键字和一些只读属性创建的类型。
var AnonType = new {propertyName1 = "property", propertyName2 = "Prop"};
属性的数据类型是根据您插入的数据决定的,例如,如果将int分配给属性,它将变为整数,依此类推。这些是只读属性,因此您不能更改它们的值。
在您的情况下,ValidationSummary是HtmlHelper类的扩展方法,并采用各种重载。这里htmlAttribute是object(匿名)类型的参数之一。希望它有所帮助。
答案 2 :(得分:0)