当前位置: 首页 > 知识库问答 >
问题:

使用类名创建实例变量在Main方法[duplicate]中不起作用

邹山
2023-03-14

我的意思是当我使用“字符串”,“int”等关键字创建一个istance变量时。我能想象出那个变量。但当我使用类名创建实例变量时,我无法在脑海中想象任何东西。

谢谢你的关心

共有1个答案

伍溪叠
2023-03-14

对于您的第二个问题,在C#中,类的实例总是一个引用变量。(推荐大家上网多看)。因此,在示例中:

class Student
{
   Student st1;
}

str1可以引用RAM中的区域。您可以将它描绘成指向矩形的箭头。箭头是引用矩形的变量,矩形是RAM上的位置。通过在类本身内部创建一个类的实例,我们实际上创建了一个指向一个新矩形的箭头,这个新矩形也有一个可以引用一个矩形的箭头,以此类推。

例如,创建一个节点列表是很有用的。每个节点引用另一个节点,如下所示:

class Node
{
   public int number;
   public Node next; // Here we create a new arrow to a new rectangle, which has an arrow too
}
Node first = new Node();
first.number = 1;

Node second = new Node();
second.number = 2;

first.next = second; // Here we "match" the arrow to a rectangle. The arrow is "first.next", and the rectangle is "second".

Node third = new Node();
third.number = 3;

second.next = third;

// We have a list: 1 -> 2 -> 3 -> null
// The end of the list is null, becuase third.next references to null (it references to no "rectangle")
Node first = new Node();
first.number = 1;

first.next = new Node();
first.next.number = 2;

first.next.next = new Node();
first.next.next.number = 3;

// In this way, we have only the "head" of the list ("first"), but we can get any node that in the list by typing "first.next. ....... .next"

// We can also iterate over the list:
Node p = first;
while (p != null) // while we are not in the end of the list
{
   // Do something, like "Console.WriteLine(p.number);" or "p.number++;"
   p = p.next; // We go to the next node
}

例如:

public class Program
{
     public static void Main(string[] args)
     {
          Node first = new Node();
          int counter = 0;
         
          first.number = counter;
          counter++;
         
          // Inialize a list of 10 nodes:
          Node p = first; // We don't want to lost the "head" of our list, "first"
          while (counter < 10)
          {                
              p.next = new Node(); // We create a new node
              p.next.number = counter; // And we initialize it
              
              counter++;
              p = p.next; // We go to the next node
          }
          
          // Now we print all the number in our list:
          p = first; // We don't want to lost the "head" of our list, "first"
          while (p != null)
          {
              Console.WriteLine(p.number);
              p = p.next; // We go to the next node
          }
     }
}

输出:

0
1
2
3
4
5
6
7
8
9

希望对您有所帮助!

 类似资料:
  • 问题内容: 我是php的新手,这可能是一个愚蠢的错误……但是我不知道发生了什么。我正在尝试使用php在数据库中创建一个表。我想用用户名命名该表。我正在使用变量。这是我的代码 因此,这将创建一个名为的表。变量不会保留。但是- 当我-变量结转。我对此很陌生- 因此,感谢您的帮助。 问题答案: 在您的SQL查询之后添加它-(它确实可以帮助并加快错误纠正时间) 回声 这在您的实例: 发生MySQL错误。错

  • 对象的实例变量及方法 实例变量(Instance Variables)是当你使用它们时,才会被建立的对象。因此,即使是同一个类的实例,也可以有不同的实例变量。 从技术层面上来看,一个对象(实例)只是存储了它的实例变量和其所属类的引用。因此,一个对象的实例变量仅存在于对象中,方法(我们称之为实例方法(Instance Methods))则存在于对象所属的类中。这也就是为什么同一个类的实例都共享类中的

  • 我试图创建一个简单的程序来输出由用户输入的星星的数量。我正在尝试学习如何使用一个以上的方法来做到这一点,这是我的代码 我面临的问题是,在循环方法中,我不能使用变量n,有没有办法在main方法中使用变量,在另一个方法中使用变量?泰 -平古

  • 问题内容: 我所考虑的所有示例都显示了如何创建一个未知实现的新实例,并将该实现投射到其接口。问题在于,现在您不能在实现类上调用任何新方法(只能重写),因为您的对象引用变量具有接口类型。这是我所拥有的: 如果我仅引用“ com.path.to.ImplementationType”,而我不知道该类型可能是什么(它来自配置文件),那么如何使用类名将其强制转换为实施类型?这有可能吗? 问题答案: 这行似

  • 我有一个项目数组,我想从属于它们的实例变量创建一个列表(或任何iterable)。 如何使用单行流执行此操作?

  • 本文向大家介绍Ruby类实例变量、类实例方法和类变量、类方法的区别,包括了Ruby类实例变量、类实例方法和类变量、类方法的区别的使用技巧和注意事项,需要的朋友参考一下 在Ruby中类实例变量、类实例方法和类变量、类方法的区别比较微妙,而且用法也有相当的区别。本文探讨一下他们的定义和基本的使用场景,以抛砖引玉...   一.类实例变量和类变量   类变量大家都很熟悉了,就是在类定义中用@@开头的变量