C# 收集变量并缩短代码
我正在做一个项目,在那里我必须比较房间彼此和打印,如果有一个房间的变化 我在那里做的这段代码运行良好。但是代码真的很难看,我想优化代码。有没有一种方法可以将变量收集在一起,这样我就没有14行变量了?也许我以后必须使用变量,所以我不想内联变量C# 收集变量并缩短代码,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,我正在做一个项目,在那里我必须比较房间彼此和打印,如果有一个房间的变化 我在那里做的这段代码运行良好。但是代码真的很难看,我想优化代码。有没有一种方法可以将变量收集在一起,这样我就没有14行变量了?也许我以后必须使用变量,所以我不想内联变量 <th class="callout-inner secondary no-changes-reservation-bgcolor"> <h5>Reservationsnummer:</h5> @
<th class="callout-inner secondary no-changes-reservation-bgcolor">
<h5>Reservationsnummer:</h5>
@{
var orderfirstName = Model.Order.FirstName.ToString();
var order2firstName = Model.Order2.FirstName.ToString();
var orderlastName = Model.Order.LastName.ToString();
var order2lastName = Model.Order2.LastName.ToString();
var orderaddress = Model.Order.Address.ToString();
var order2address = Model.Order2.Address.ToString();
var orderpostCode = Model.Order.PostCode.ToString();
var order2postCode = Model.Order2.PostCode.ToString();
var orderCity = Model.Order.City.ToString();
var order2City = Model.Order2.City.ToString();
var orderPhone = Model.Order.Phone.ToString();
var order2Phone = Model.Order2.Phone.ToString();
var orderEmail = Model.Order.Email.ToString();
var order2Email = Model.Order2.Email.ToString();
}
<table align="center" class="wrapper header float-center">
<tr>
<td class="wrapper-inner background-color__yellow">
<span>
@renderOrderPropertyBlock("Fornavn", orderfirstName, order2firstName)
<br />
@renderOrderPropertyBlock("Efternavn", orderlastName, order2lastName)
<br />
@renderOrderPropertyBlock("Adresse", orderaddress, order2address)
<br />
@renderOrderPropertyBlock("Postnummer", orderpostCode, order2postCode)
<br />
@renderOrderPropertyBlock("City", orderCity, order2City)
<br />
@renderOrderPropertyBlock("Phone", orderPhone, order2Phone)
<br />
@renderOrderPropertyBlock("Email", orderEmail, order2Email)
</span>
</td>
</tr>
</table>
</th>
预订联系人:
@{
var orderfirstName=Model.Order.FirstName.ToString();
var order2firstName=Model.Order2.FirstName.ToString();
var orderastname=Model.Order.LastName.ToString();
var order2lastName=Model.Order2.LastName.ToString();
var orderaddress=Model.Order.Address.ToString();
var order2address=Model.Order2.Address.ToString();
var orderpostCode=Model.Order.PostCode.ToString();
var order2postCode=Model.Order2.PostCode.ToString();
var orderCity=Model.Order.City.ToString();
var order2City=Model.Order2.City.ToString();
var orderPhone=Model.Order.Phone.ToString();
var order2Phone=Model.Order2.Phone.ToString();
var orderEmail=Model.Order.Email.ToString();
var order2Email=Model.Order2.Email.ToString();
}
@RenderRoderPropertyBlock(“Fornavn”、orderfirstName、order2firstName)
@RenderRoderPropertyBlock(“Efternavn”、orderlastName、order2lastName)
@RenderRoderPropertyBlock(“地址”、orderaddress、order2address)
@RenderRoderPropertyBlock(“Postnummer”、orderpostCode、order2postCode)
@RenderRoderPropertyBlock(“城市”、orderCity、order2City)
@RenderRoderPropertyBlock(“电话”、orderPhone、order2Phone)
@RenderRoderPropertyBlock(“电子邮件”、orderEmail、order2Email)
您不必定义这些变量,只需将属性值传递给html助手即可:
@renderOrderPropertyBlock("Fornavn", Model.Order.FirstName.ToString(), Model.Order2.FirstName.ToString())
您也可以使用反射遍历属性,但代码的执行速度会慢得多。您不必定义这些变量,只需将属性值传递给html助手即可:
@renderOrderPropertyBlock("Fornavn", Model.Order.FirstName.ToString(), Model.Order2.FirstName.ToString())
您也可以使用反射遍历属性,但代码的执行速度会慢得多。您可以这样做:
@{
var order1 = Model.Order;
var order2 = Model.Order2;
}
在你的跨度内:
<span>
@renderOrderPropertyBlock("Fornavn", order1.FirstName.ToString(), order2.FirstName.ToString())
<br />
// and so on ...
</span>
@RenderRoderPropertyBlock(“Fornavn”,order1.FirstName.ToString(),order2.FirstName.ToString())
//等等。。。
您可以这样做:
@{
var order1 = Model.Order;
var order2 = Model.Order2;
}
在你的跨度内:
<span>
@renderOrderPropertyBlock("Fornavn", order1.FirstName.ToString(), order2.FirstName.ToString())
<br />
// and so on ...
</span>
@RenderRoderPropertyBlock(“Fornavn”,order1.FirstName.ToString(),order2.FirstName.ToString())
//等等。。。
所有的ToString
调用是怎么回事?这些属性是否还没有strngs?只要(a)您的代码按预期工作,(b)您的代码是真实代码,而不是示例代码,以及(c)您的代码包含在问题主体中,这个问题就可能适用。如果您希望通过同行评审来改进代码的各个方面,请将其发布在代码评审上。所有的ToString
调用是怎么回事?这些属性是否还没有strngs?只要(a)您的代码按预期工作,(b)您的代码是真实代码,而不是示例代码,以及(c)您的代码包含在问题主体中,这个问题就可能适用。如果您希望通过同行评审来改进代码的各个方面,请将其发布在代码评审上。有趣的是,这被接受为答案,因为OP声明“我不想内联变量”…是的,对不起。我可以看出,我可以以任何方式内联变量。有趣的是,这被接受为答案,因为OP声明“我不想内联变量”…是的,对不起。我可以看出,我可以以任何方式内联变量。