Estoy intentando crear un método de extensión para una cadena que toma un argumento y agrega el argumento al valor de la cadena. Aquí está el comportamiento Quiero:C# Reemplazar el valor de la cadena original en el método de extensión
public static void AddNumber(this string originalValue, string id)
{
List<string> ids = originalValue.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToString();
ids.Add(id);
string newValue = string.Join(",", ids);
originalValue = newValue;
}
Entonces me gustaría utilizar esto como sigue:
string testing = "";
testing.AddNumber("1"); // value should be 1
testing.AddNumber("2"); // value should be 1,2
testing.AddNumber("3"); // value should be 1,2,3
La cuestión es que estoy viendo esto:
string testing = "";
testing.AddNumber("1"); // value is ""
testing.AddNumber("2"); // value is ""
testing.AddNumber("3"); // value is ""
Ahora tengo lea el this! tema aquí en StackOverflow, y soy consciente de que estoy haciendo algo similar. No puedo reemplazar todo el valor de la cadena, tengo que modificar el contenido de la cadena que se envía ... No puedo encontrar una manera de modificarlo. Intenté modificar la matriz de caracteres y no tuve suerte. ¿Algunas ideas?
Cambiar el método de '' void' a string' y tratar 'de prueba = testing.AddNumber ("1");' –