Как сохранить старое значение при установке переменной в классе c #

#c#

#c#

Вопрос:

Я хочу создать класс, который может устанавливать несколько значений и не удалять старое, которое уже было установлено, вместо этого добавьте его и старое значение. Вот мой пример.

 myClass myCls = new myClass();

myCls.setString = "My first string!";
myCls.setString = "My second string!";
myCls.setString = "My third string!";
string printMe = myCls.getString();

Console.WriteLine(printMe);
  

И когда он выведет что-то вроде;

 //My first string!My second string!My third string!
  

Комментарии:

1. Вы что-нибудь пробовали?

2. вы не сможете, если не сохраните старое значение где-нибудь

3. @Selman22 да, вы можете. вы можете добавить к строке…

Ответ №1:

Одним из способов сделать это было бы создать новое свойство в вашем MyClass

 public class myClass
{
    private string _setString;
    public string setString 
    {
            get
            {
                 return _setString;
             }
            set
            {
                 AuditTrail  =  value;
                 _setString = value;
            }
    }

    public string AuditTrail{get;set;}
  

}

Затем в вашем основном методе вы бы поставили:

 Console.WriteLine(AuditTrail);
  

Ответ №2:

Вы можете попробовать с этим классом:

 public class ValueKeeper {

    private List<object> values;

    public object Value {
        get { return ToString(); }
        set { values.Add(value); }
    }

    public ValueKeeper() {
        values = new ArrayList<object>();
    }

    public override string ToString() {
        string result = String.Empty;
        foreach(object value in values) result  = value.ToString();
        return resu<
    }
}
  

Конечно, его можно улучшить, но это удовлетворит ваши потребности.


Пример

 ValueKeeper valueKeeper = new ValueKeeper();

valueKeeper.Value = 1;
valueKeeper.Value = "This is a string";
valueKeeper.Value = someCustomObject;

string str = valueKeeper.Value;
Console.WriteLine(str); //PRINTS OUT "1This is a stringxxxxx"
                        //Where "xxxx" is the string representation of the custom object
  

Ответ №3:

Вы можете создать такой класс.

 class MyClass
{
   private string myString;
   public string MyString
   {
    get
     {
       return myString;
     }
    set
     {
       myString  = value;
     }
    }
 }
  

В вашей программе вы можете использовать так

 MyClass c = new MyClass();
c.MyString = "String 1";
c.MyString = "String 2";
Console.WriteLine(c.MyString);
  

Ответ №4:

Это кажется странным запросом, но это можно сделать!

  class myClass
    {
        //Properties
        private string privateString;

        //Constructor
        public myClass()
        {

        }

        //Methods
        public void setString(string val)
        {
            privateString  = val;
        }

        public string getString()
        {
            return privateString;
        }

    }
  

Комментарии:

1. Проголосовал без комментариев, почему? Где этот мир пошел не так !?

2. Ваш ответ такого же качества, как и любой другой ответ, ни один из них не содержит каких-либо объяснений. Хотя я бы не стал его отклонять.

Ответ №5:

 string _entry;
public string Entry
{
    get { return _entry; }
    set { _entry  = value; }
}