저는 Job이라는 객체를 가지고 있고 그 안에 문자열, int 및 열거 형을 공용 객체로 가지고 있습니다. 각 작업은 Queue에 저장되고 프로세스의 대기열을 반복합니다.컨테이너 객체 내의 모든 공용 객체 (문자열/int/enum) 값을 Console에 쓰십시오.
내가 원하는 것은 각 작업을 Dequeue() 할 때마다 각 작업을 반복적으로 수행하고 공용 객체 이름과 값을 콘솔에 쓸 수 있다는 것입니다.
콘솔에 개체 이름을 쓰는 방법을 알았지 만 값을 분명히 쓸 수는 있지만 문제는 작업 개체에서 각 공용 문자열/int/enum을 가져 오는 방법을 모르겠다는 것입니다.
나는 C# object dumper C#: How to get all public (both get and set) string properties of a type How to select all the values of an object's property on a list of typed objects in .Net with C# 을 검토 한하지만이 허용 답변 중 하나를 사용하는 것이 이해가 안 돼요. 여기
class Job
{
#region Constructor
public Job()
{
}
#endregion
#region Accessors
public int var_job { get; set; }
public jobType var_jobtype { get; set; } //this is an enum
public string var_jobname { get; set; }
public string var_content { get; set; }
public string var_contenticon { get; set; }
#endregion
}
변수의 이름을 반환하는 것 코드입니다 : (
https://stackoverflow.com/a/2664690/559988에서) I는 다음과 같이 콘솔에 출력이있을 것이다
이상적으로
GetName(new {Job.var_content}) //how I call it
static string GetName<T>(T item) where T : class
{
return typeof(T).GetProperties()[0].Name;
}
여기
내 작업 클래스에 코드입니다 :Queuing Jobs Now
--------------------
var_job = its value
var_jobtype = its value
var_jobname = its value
var_content = its value
var_contenticon = its value
생각들? 토니 홉 킨슨의 제안 당
리플렉션을 사용하여 속성을 반복하고 값을 가져오고 tostring() 메서드를 사용합니다. 또는 클래스에서 멋진 출력을 생성하는 toString (또는 다른 메서드)을 재정의합니다. 물론 당신은 그것을 유지해야 할 것입니다 ... –
나는 점차적으로 여기 예제를 보면서 그것을 얻고 있다고 생각한다 : http://msdn.microsoft.com/en-us/library/aa332475(v=vs.71)) .aspx 얻으면 솔루션을 게시 할 것입니다. – cvocvo
왜 [ToString] (http://msdn.microsoft.com/en-us/library/system.object.tostring.aspx)을 덮어 쓸 수 없습니까 (또는 다른 이름으로 유사한 방법을 쓰십시오) 직업 클래스? –