我知道这是一个愚蠢的问题,但我一直在教自己c#,所以即时学习语言。
我的问题是:通常当我编写方法时,当我需要它们共享相同的范围时,我会在方法的顶部找到我自己声明的对象和变量。这些类型的对象/变量是否有名称?我知道在一个方法之外宣布他们将成为属性。
我的意思的示例代码:我的问题是如何调用Question区域中的对象。
public Label start_Ping(String target, string name, ref bool router)
{
#region [ Question ]
Label status_Label = new Label(); //Declare the label which will be dynamically created
Ping ping = new System.Net.NetworkInformation.Ping(); //Declare the ping object
PingReply reply = null; //Declare the pingReply object
byte[] buffer = new byte[100]; //Set the byte size
#endregion
if (name == "router")
{
try
{
reply = ping.Send(target, 50, buffer);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
if (reply.Status == IPStatus.Success)
{
router = true;
}
else
{
router = false;
return null;
}
}
try
{
...
提前致谢。我明白这可能很简单=)
答案 0 :(得分:0)
在您的代码中,status_Label
,ping
,reply
和buffer
简称为本地变量。
也就是说,他们将本地添加到您创建它们的方法中(或者您声明它们的任何范围)。
顺便说一下,只要他们在某个范围内,你声明它们的方法中的 并不重要。
答案 1 :(得分:0)
BoltClock是正确的,但是为了将来参考,在方法之外声明的变量不是属性。他们称之为成员变量。属性不同。
例如:
public class ExampleClass {
String myString = "Hello World!";
public String MyProperty {
get { return myString; }
set {
myString = value;
System.Console.WriteLine("MyProperty changed to " + value);
}
}
}
这里,myString是一个成员变量(或实例变量)。它不能从课外访问。
MyProperty,顾名思义,是一个属性。它实际上是一种行为类似变量的方法,但允许在更改或访问其值时发生其他事情。在此示例中,设置MyProperty将输出一条消息,提供其新值。
希望这有帮助。
答案 2 :(得分:0)
@BoltClock已回答你的问题;但是,我想指出你的陈述“当[变量是在一个方法之外声明它们将成为属性时”]是不正确的。在方法外声明的变量称为 fields 。属性通常与字段(保持值)具有相似的目的,但它们需要使用get
和set
访问器进行定义,并且可以包含逻辑,例如验证或属性更改通知(哪些字段可以“T)。
例如:
public class Router
{
private PingReply reply = null;
public PingReply Reply
{
get { return reply; }
set { reply = value; }
}
}
在这种情况下,reply
是一个字段,而Reply
是一个获取或设置reply
值的属性。