[英]Is it possible to release a variable in c#?
我只是好奇...
是否可以在c#中释放变量?
我的意思是,你可以这样做:
...
string x = "billy bob";
//release variable x somehow
string x = "some other string";
//release variable x somehow
int x = 329;
...
...所以基本上你在同一范围内多次声明变量。
如果在c#中无法做到这一点,可以使用哪种语言?
您可以使用范围(松散术语;正式地认为这将是一个声明空间),例如以下是方法体内完全合法的C#:
{
string x = "billy bob";
}
{
string x = "some other string";
}
{
int x = 329;
}
我不建议编写这样的代码,但它很容易让方法中的变量混淆。 最好使用不同的,更具描述性的名称,或将每个块分成自己的方法。
不,这在同一范围内的C#中是不可能的 - 对此我非常感激。 这听起来像是可读性灾难的秘诀。 正如Greg所示,您可以在方法中引入自己的范围,仅用于此目的。
我不知道哪种语言允许你这样做 - 弱类型的语言通常会让你分配任意值当然,但我不知道一种语言,它具有类型信息的显式变量声明,并允许重新声明相同的范围。
您可能想阅读Eric Lippert最新的博客文章,这篇文章都是关于范围的 。 (如果您还没有阅读过Eric的博客,您可能希望在日历中清除几天并阅读所有后期帖子......或者至少是他加入C#团队以来的那些。准备让您的思绪开始反复。)
你可以重用一个字符串:
string x = "billy bob";
x = "some other string";
你为什么想做这个?
也许你可以这样做:
object x = "billy bob"
x = "some other string";
x = 329;
然后按你喜欢的方式施展它?
您可以重新分配变量,当然:
string s = "billy bob";
s = "something else";
您无法在同一范围内重新声明变量:
// This is illegal:
string s = "billy bob";
string s = "foo"
由于Object是.NET中类型系统的根,因此您可以执行以下操作:
object o = "billy bob";
o = "foo";
o = 5;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.