C# 关于某个变量的范围
我可以在try块之外使用下面代码中的“str”命名变量吗 我有点困惑C# 关于某个变量的范围,c#,C#,我可以在try块之外使用下面代码中的“str”命名变量吗 我有点困惑 if () { try { String str; } catch { //exception } String result=str; // Will this work ??? It's inside of IF block only. } 否,您在try块中声明的任何内容只能在try块的范围内使用 访问在其他地方的try块中使用的变量的唯一方法是在try块之前声明它。否,在try块中声明的任何内容
if ()
{
try
{
String str;
}
catch
{
//exception
}
String result=str; // Will this work ??? It's inside of IF block only.
}
否,您在
try
块中声明的任何内容只能在try
块的范围内使用
访问在其他地方的
try
块中使用的变量的唯一方法是在try
块之前声明它。否,在try
块中声明的任何内容都只能在try
块的范围内使用
访问在其他地方的
try
块中使用的变量的唯一方法是在try
块之前声明它。否。声明仅限于try块。您甚至不能在catch块中使用它。否。该声明仅限于try块。您甚至不能在catch块中使用它。假设您想要字符串result=str。。。不,它不会工作。假设您想要字符串result=str。。。不,它不会工作。如果在作用域块内声明变量(在{}
内的任何内容),它只能在其中使用。如果在作用域块内声明变量(在{}
内的任何内容),它只能在其中使用。我想你的问题是,你能否从try块外部引用try块中定义的变量。答案是否定的,但是您可以引用在try块外部定义并在try块内设置的变量,如下所示:
string myVar;
try
{
myVar = "something";
}
catch {}
// now you can set otherVar to "something"
string otherVar = myVar;
我想你的问题是你能从try块外部引用try块中定义的变量吗。答案是否定的,但是您可以引用在try块外部定义并在try块内设置的变量,如下所示:
string myVar;
try
{
myVar = "something";
}
catch {}
// now you can set otherVar to "something"
string otherVar = myVar;
否,在try{}块之外声明您的“str”。否,在try{}块之外声明您的“str”。始终在try-catch块之前声明变量,并将其初始化为null或默认值,以适用的为准 不管您是在try或catch中使用变量,还是在finally中使用变量,或者根本不使用变量。它将在将来为您节省麻烦,并将提高代码的可读性
public void processSomeRequest()
{
string firstVariable = null;
string secondVariable = null;
int someInt = 0;
try
{
// Initialise variables
firstVariable = "test";
secondVariable = "blah";
// Process request code
}
catch(Exception e)
{
logException(e);
throw;
}
}
基本示例,但您从一开始就知道要使用什么。未使用的变量将突出显示 始终在try-catch块之前声明变量,并将其初始化为null或默认值(以适用的为准) 不管您是在try或catch中使用变量,还是在finally中使用变量,或者根本不使用变量。它将在将来为您节省麻烦,并将提高代码的可读性
public void processSomeRequest()
{
string firstVariable = null;
string secondVariable = null;
int someInt = 0;
try
{
// Initialise variables
firstVariable = "test";
secondVariable = "blah";
// Process request code
}
catch(Exception e)
{
logException(e);
throw;
}
}
基本示例,但您从一开始就知道要使用什么。未使用的变量将突出显示 你需要比这更清楚一点。你没有太多的感觉,请阅读你的代码并修复它。您没有在任何地方声明
var
变量。var
来自哪里?您的TRY部分中有str
。我认为您的问题是错误的,最后一行应该是String result=str吗?您需要比这更清楚一点。你没有太多的感觉,请阅读你的代码并修复它。您没有在任何地方声明var
变量。var
来自哪里?您的试用区中有str
。我认为您的问题是错误的,最后一行应该是String result=str吗?@user:因为您没有在其他地方使用str
。@user:因为您没有在其他地方使用str
。是的,它只是str。hv编辑了它…只是想知道为什么VS没有显示编译时错误是的,它只是str。hv编辑了它…只是想知道为什么VS没有显示编译时错误在尝试块之前声明??那么这些变量是否会超出try块的范围??那会怎么样..我的意思是使用一个变量..我需要声明它在块中..对吗?声明它..sry用于输入错误..sry用于哑注释..明白..thnxdeclare在尝试块之前??那么这些变量是否会超出try块的范围??我想使用一个变量我需要声明它在块里面对吗?声明它…为输入错误声明…为愚蠢的注释声明…明白了…thnx