在一个类似于属性的方法中,变量的正确名称是什么

本文关键字:变量 是什么 方法 一个 类似于 属性 | 更新日期: 2023-09-27 18:21:37

我知道这是一个愚蠢的问题,但我一直在自学c#,所以我边学边学。

我的问题是:通常当我编写方法时,当我需要它们共享同一范围时,我会发现我的自声明对象和变量位于方法的顶部。这些类型的对象/变量有名称吗?我知道当在方法外部声明时,它们将是属性。

我的意思的示例代码:我的问题是如何称呼"问题"区域中的对象。

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
{
...

提前谢谢。我知道这可能很简单=)

在一个类似于属性的方法中,变量的正确名称是什么

在您的代码中,status_Labelpingreplybuffer简称为局部变量

也就是说,它们是您在其中创建它们的方法(或您在其中声明它们的任何范围)的本地

顺便说一句,在方法中的位置声明它们并不重要,只要它们在某个范围内即可。

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上有一些关于这方面的好文档。

希望这能有所帮助。

@BoltClock已经回答了您的问题;然而,我想指出的是,您的语句"当[变量]在方法外部声明时,它们将是属性"是不正确的。在方法外部声明的变量称为字段。属性通常与字段(持有值)具有类似的用途,但它们需要使用getset访问器进行定义,并且可以包含逻辑,如验证或属性更改通知(字段不能)。

例如:

public class Router
{
    private PingReply reply = null;
    public PingReply Reply
    {
        get { return reply; }
        set { reply = value; }
    }
}

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