gpt4 book ai didi

C# 有更好的写法吗?

转载 作者:太空狗 更新时间:2023-10-29 18:11:19 24 4
gpt4 key购买 nike

int uploadsID;
int pageNumber;
int x;
int y;
int w;
int h;

bool isValidUploadID = int.TryParse(context.Request.QueryString["uploadID"], out uploadsID);
bool isValidPage = int.TryParse(context.Request.QueryString["page"], out pageNumber);
bool isValidX = int.TryParse(context.Request.QueryString["x"], out x);
bool isValidY = int.TryParse(context.Request.QueryString["y"], out y);
bool isValidW = int.TryParse(context.Request.QueryString["w"], out w);
bool isValidH = int.TryParse(context.Request.QueryString["h"], out h);

if (isValidUploadID && isValidPage && isValidX && isValidY & isValidW & isValidH)
{

这是一个 ajax 处理程序,检查所有传递的参数是否正常。这被认为是不好的,是否有更好的方式来编写它,或者它不是那么重要?

最佳答案

假设您不打算在别处使用单独的 bool 变量,您可以将其写为:

int uploadsID, pageNumber, x, y, w, h;
if (int.TryParse(context.Request.QueryString["uploadID"], out uploadsID) &&
int.TryParse(context.Request.QueryString["page"], out pageNumber) &&
int.TryParse(context.Request.QueryString["x"], out x) &&
int.TryParse(context.Request.QueryString["y"], out y) &&
int.TryParse(context.Request.QueryString["w"], out w) &&
int.TryParse(context.Request.QueryString["h"], out h))
{
}

您可能希望将 int.TryParse(context.Request.QueryString[name], out variable 提取到一个单独的方法中,留下如下内容:

int uploadsID, pageNumber, x, y, w, h;
if (TryParseContextInt32("uploadID", out uploadsID) &&
TryParseContextInt32("page", out pageNumber) &&
TryParseContextInt32("x", out x) &&
TryParseContextInt32("y", out y) &&
TryParseContextInt32("w", out w) &&
TryParseContextInt32("h", out h))
{
}

或者,您可以使用 TryParse 方法将所有这些上下文数据封装到一个新类型中,这样您就可以得到如下内容:

PageDetails details;
if (PageDetails.TryParse(context.Request.QueryString))
{
// Now access details.Page, details.UploadID etc
}

这显然需要更多工作,但我认为这会使代码更清晰。

关于C# 有更好的写法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4943304/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com