在c#中全局声明一个字符串
本文关键字:一个 字符串 全局 声明 | 更新日期: 2023-09-27 18:11:10
在下面c#的粗略示例代码中,我必须在条件中声明一个字符串,并且我无法从大括号
中访问它if(//some condition)
{
string value1 = "something";
}
//push to database value1
在上面的代码编译器中说The name 'value1' does not exists in the current context
,我需要以这样一种方式声明value1
,即必须在整个页面中访问它。我试过protected value1
,但那也不起作用。我讨厌把它作为一个单独的类来使用。有全局声明吗?
当在大括号内声明时,你只给它在大括号内(也就是块)的作用域。
在大括号外声明它,给它更大的作用域。
在本例中,它将位于声明块的作用域内,并且可以在if
语句之外使用:
string value1;
if(//some condition)
{
value1 = "something";
}
//push to database value1
我建议阅读这篇文章来了解c#中的作用域。
c#是块作用域,所以你要在if块中定义变量
正确的范围示例:
string value1 = someCondition ? "something" : string.Empty;
或
string value1 = string.Empty;
if (someCondition)
{
value1 = "something";
}
或
string value1;
if (someCondition)
value1 = "something";
else
value1 = string.Empty;
您需要在if条件的作用域之外声明string,以便您可以在if
之外访问它string value1 = String.Empty;
if(//some condition)
{
value1 = "something";
}
在条件语句之外声明value1
。
string value1;
if(//some condition)
{
value1 = "something";
}
试试这个:
string value1 = string.Empty;
if (//condition)
value1 = "something"
你可以这样做…
string value1= ""
if(some condition)
{
value1 = "something";
}
我无法从括号
中访问它
这就是c#的工作原理。在大括号内定义的任何内容都不能存在于大括号之外。您必须在大括号开始之前声明它。
- 在所有块和方法之外声明变量
- 双重检查,以确保你真的需要这是全局的-这是完整性检查
- 设置值
-
Null refcheck,如果值没有设置
//页面顶部私有字符串_value;//块_value = condition ?
现在您有一个可空的值来测试(null = not set)和一个可以"全局"使用的值。