List 유형의 멤버가 하나있는 클래스를 만들었습니다. 그러면 ClassNameInstance.Add()
을 사용하여이 값을 더할 수 있습니다.C# : 클래스 반환 값 - 또는 더 좋은 방법이 있습니까?
우리는 이제 내가 만든 모든 클래스와 그 값을 자동으로 사용할 제 3 자의 코드를 사용하고 있습니다. 목록 제외. 목록의 첫 번째 요소 만 반환합니다.
내가 필요한 것은 써드 파티 코드를 사용하기 위해 쉼표로 구분 된 버전을 반환했습니다. 이제 문자열을 String 멤버에 추가 할 수는 있지만이 방법은 .Add() 메서드처럼 좋지 않습니다. 내가 좋아하는 것
MyClass1.Add("Test1");
MyClass1.Add("Test2");
Console.WriteLine(MyClass2);
출력은 Test1, Test2
될 것입니다 :
업데이트 1 :
위의 내용이 분명하지 않을 수 있습니다.
public class MyClass1
{
????
}
public class MyClass2
{
MyClass1 mc1 { get; set; }
String name { get; set; }
}
타사 코드는 MyClass2와 해당 값을 사용합니다. MyClass1 대신 List를 사용할 때 목록의 첫 번째 값만 가져 오지만 CSV 목록은 반환 된 String으로 필요합니다.
MyClass2 mc2 = new MyClass2();
mc2.mc1.Add("Test1");
mc2.mc1.Add("Test2");
Console.WriteLine(mc2.mc1) should output -> Test1, Test2
희망 사항이 더 많아집니다.
감사합니다. :)
UPDATE2 :
그것은 모든 사람이 같은 일을 제안 것 같다 - 사용 ToString을().
제 3 자 코드는 내 클래스를 살펴보고 멤버 유형과 값을 자동으로 결정합니다. 즉, ToString()을 호출하여 반환되는 값을 코드에 전달할 수 없습니다.
목록의 추가/제거 기능이 필요하지만 그 값을 사용하면 단일 CSV 문자열로 반환됩니다.
public sealed class StringJoiningList
{
private readonly List<string> list = new List<string>();
public void Add(string item)
{
list.Add(item);
}
public override string ToString()
{
return string.Join(", ", list.ToArray());
}
}
: 당신은 그냥 자동으로 ToString
에서 호출하려면 클래스에서이 동작을 포장 할 수
List<string> list = new List<string>();
list.Add("Test1");
list.Add("Test2");
Console.WriteLine(string.Join(", ", list.ToArray());
:
대답은 지금까지 당신의 질문의 두 번째 부분에 대답하는 것,하지만 난 그 첫 번째 부분과 결합하여 어떻게 확실히 이해할 수없는 인정해야 - 당신의 타사 코드는 (A ToString을 수행) 수업에? – Benjol
@Benjol : 소스 코드를받지 못 했으므로 정확히 무엇을하는지 확신 할 수 없습니다. 사실 내 수업을 두 번째 수업에서 사용하고 싶습니다. 이 두 번째 클래스는 타사 코드와 함께 사용되므로 불행히도 ToString()을 사용할 수 없습니다. – neildeadman