【问题标题】:Unable to assign value to variable on line other than declaration of variable [closed]除了声明变量之外,无法在线为变量赋值[关闭]
【发布时间】:2021-01-27 17:44:41
【问题描述】:

我是 C# 学习的新手,这是我关于堆栈溢出的第一个问题。当我尝试初始化变量时,我收到错误代码 CS0103(名称“exampleInt”在当前上下文中不存在)。但是,如果我在声明它的同一行(上一行)初始化它,则不会出现错误。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ClassLibrary1
{
    public class Class1
    {
        
        // No error shows up here for
        // private int exampleIn=77;

        private int exampleInt; 

        // error on following line
        exampleInt=77;

    }
}

【问题讨论】:

  • 将最后一行代码放入函数中。

标签: c# visual-studio-2015 class-library


【解决方案1】:

一个类封装了对象的行为,它包含构造函数、方法、属性、常量、实例变量等。

现在你已经声明了一个实例变量private int exampleInt;

exampleInt 只能在 ClassLibrary1 类中使用 - 但它需要封装在方法或构造函数、属性等中。

通过在上下文之外引用它 - 实例没有意义 - 因此出现错误。

尝试执行以下操作:

public void SetMyExample()
{
  exampleInt=77;
}

现在,当您创建 ClassLibrary1 类型的对象时

ClassLibrary1 myClass = new ClassLibrary1();

调用myClass.SetMyExample(); exampleInt 将设置为77

由于 exampleIntprivate 只能在类 ClassLibrary1 范围内访问,您可能希望能够获得它的值。

你可以使用:

public int GetMyExample()
{
  return exampleInt;
}

你可以调用方法var myExample = myClass.GetMyExample();

【讨论】:

    猜你喜欢
    • 2023-03-13
    • 2022-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-29
    • 1970-01-01
    • 1970-01-01
    • 2018-03-13
    相关资源
    最近更新 更多