C#을 사용 변수, asp.net을 처리하지 내가 (테스트 용) site.master에 수동으로 할당 된 세션 변수가 있습니다. 나는 같은 값 설정 : 세션 [ "용자 ID"] = 내 웹 페이지에서 (INT) 번호string.IsNullOrEmpty() 메소드는</p> <p>VWD 2010 년 세션 제대로
을, 나는 다음과 같은 코드가 있습니다 실행하는 동안
litmsg.Text = "userid = " + Session["userid"].ToString();
if (string.IsNullOrEmpty(Session["userid"] as string))
{
Session["errmsg"] = "No user ID is specified";
litmsg.Text = litmsg.Text + " inside loop";
// Response.Redirect("/PageError.aspx");
}
return;
이 litmsg.Text의 값이있는 올바른 사용자 아이디. Session [ "userid"]에 값이 있어야 함을 알려줍니다. 그러나 값이 있으면 string.IsNullOrEmpty()가 false를 반환하여 본문이 실행되지 않아야하며 "inside loop"구문을 보지 않아야합니다.
string.IsNullOrEmpty는()도 내 PageError 페이지에 실패 할 것 같다, 그것은 내가 세션 값 [ "errmess을"] 설정 한 경우에도 지정되지 않은 메시지를보고이 경우
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
string strErrMess = string.IsNullOrEmpty(Session["errmess"] as string) ?
"Unspecificed error message" :
Session["errmess"].ToString();
errmess.Text = strErrMess;
}
}
.
다른 문맥에서이 관용구를 사용하고 있는데 제대로 작동하는 것 같습니다. 세션 변수에 적용 할 때만 문제가 있습니다. 내가 빠진 부분이 있습니까?
세션 변수와 함께 사용하면 이전 버전의 버그에 대한 참조가 발견되었지만 현재 버전에서는 버그가 수정되었음을 나타냅니다. 예를 들어, 여기 : C# String.IsNullOrEmpty: good or bad?
나는 다른 곳에서 이미 사용하고 있으므로이 관용구를 좋아합니다. 이 작업을 수행하는 더 좋은 방법이 있습니까? 하나는 작동합니까? 아니면 내가 뭔가 잘못하고있는 것 같아.
문자열인지 아닌지 확인하기 전에 ToString()을 호출하지 않습니다. 'int'값으로 지정 했으므로 문자열이 아닙니다. –
값이 null 인 경우 ToString()이 실패 할 수 있다고 생각했습니다. – elbillaf