作为属性的方法中变量的正确名称是什么?

时间:2012-01-28 16:33:42

标签: c#

我知道这是一个愚蠢的问题,但我一直在教自己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
{
...

提前致谢。我明白这可能很简单=)

3 个答案:

答案 0 :(得分:0)

在您的代码中,status_Labelpingreplybuffer简称为本地变量

也就是说,他们将本地添加到您创建它们的方法中(或者您声明它们的任何范围)。

顺便说一下,只要他们在某个范围内,你声明它们的方法中的 并不重要。

答案 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将输出一条消息,提供其新值。

在MSDN herehere上有一些很好的文档。

希望这有帮助。

答案 2 :(得分:0)

@BoltClock已回答你的问题;但是,我想指出你的陈述“当[变量是在一个方法之外声明它们将成为属性时”]是不正确的。在方法外声明的变量称为 fields 。属性通常与字段(保持值)具有相似的目的,但它们需要使用getset访问器进行定义,并且可以包含逻辑,例如验证或属性更改通知(哪些字段可以“T)。

例如:

public class Router
{
    private PingReply reply = null;

    public PingReply Reply
    {
        get { return reply; }
        set { reply = value; }
    }
}

在这种情况下,reply是一个字段,而Reply是一个获取或设置reply值的属性。