Java에서는 Class에 ToString()을 오버라이드 하여 디버깅 값을 찍어볼 수 있는것이 큰 장점이다.
물론 @Override 아래 구문은 IDE를 통해 클릭 한번으로 구현하는 방법이다.
이를 c#에서 구현하여 사용해 보자.
c# 의 경우 IDE가 아닌 언어 자체의 확장메소드를 제공하기에 더 편리하게 사용할 수 있다.
- 아래의 코드를 공통 프레임워크에 넣어두자
public static string ToValue(this object obj)
{
if (obj == null) return "null";
Type type = obj.GetType();
PropertyInfo[] properties = type.GetProperties();
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append(type.Name);
stringBuilder.Append(" { ");
foreach (PropertyInfo property in properties)
{
if (property.CanRead)
{
object value = property.GetValue(obj);
stringBuilder.Append(property.Name);
stringBuilder.Append(" = ");
stringBuilder.Append(value != null ? value.ToString() : "null");
stringBuilder.Append(", ");
}
}
if (properties.Length > 0)
{
// 마지막 쉼표와 공백 제거
stringBuilder.Length -= 2;
}
stringBuilder.Append(" }");
return stringBuilder.ToString();
}
- 사용법
public class Dog
{
public int ID { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public string Address { get; set; }
public DateTime RegDate { get; set; }
}
public class HomeController : Controller
{
public ActionResult Index()
{
// 테스트 클래스에 값 넣기
var dog = new Dog();
dog.ID = 1;
dog.Name = "개복이";
dog.Address = "서울 서초구 양재동 영동1교 다리밑";
dog.Email = "dog@dog.com";
dog.RegDate = DateTime.Now;
// 문자열 찍어보기
string modelDebug = dog.ToValue();
ViewBag.modelDebug = modelDebug;
return View();
}
}
- 결과
'C#.NET > C#' 카테고리의 다른 글
Dapper ORM 사용 예제 (0) | 2024.10.22 |
---|---|
간단 텍스트 파일 로그 생성 (0) | 2024.09.06 |
c# 권장 코딩 규칙 가이드 (0) | 2020.06.09 |
C#을 통한 Javascript 압축 (한글불가) (0) | 2020.06.03 |