c# Как получить оригинальный объект элемента списка Не ссылки - PullRequest
0 голосов
/ 26 февраля 2020

У меня есть два класса: ClassA и Test

  1. Я хочу установить Test.classA = null на ClassA.Clean().
  2. Я не хочу использовать Test.classA напрямую

Код:

public class ClassA 
{
    private static List < ClassA > list = new List < ClassA > ();
    public ClassA() 
    {
        list.Add(this);
    }
    public static void Clean() 
    {
        for (var i = 0; i < list.Count; i++) 
        {
            //var classA = list[i];
            //classA = null;
        }
    }
}
public class Test 
{
    private static ClassA classA;
    void DoSomething() 
    {
        if (classA == null)
            classA = new ClassA();
    }
}

Ответы [ 2 ]

0 голосов
/ 26 февраля 2020

Я думаю, вам нужен еще один класс для List of ClassA, или, например,

public class ListClassA
{
  public list;
  public ClassA()
  {
    list = new List<ClassA>();
  }
  public void Clean()
  {
    for (var i = 0; i < list.Count; i++)
    { 
       list.Clear();
    }
  }
}
public class ClassA
{
   private static ListClassA list = new ListClassA();
   public ClassA()
   {
     list.Add(this);
   }
   public static void Clean()
   {
     list.Clear();
   }
}

ИЛИ

вам нужно collection.generi c, потому что имеет функцию Clear () .

0 голосов
/ 26 февраля 2020

Хорошо, чувак: 1. Извините за плохой английский sh: D - пишет литералы 2 основы c предложения ^^ (без ненависти)

Итак, у вас есть тест класса, который содержит объект класса A ... и вы хотите "очистить" classA

Я не знаю, как "очистить" объект, но вы можете очистить список в classA whitch list.clear ().

Кстати, я не совсем понимаю, что вы пытаетесь сделать ... у вас есть classA со списком, и вы заполняете этот список тем же объектом classA и этот объект содержит список, который содержит classA, который содержит список ........ вы получаете точку ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...