728x90
728x170
■ Convert 클래스의 ChangeType 정적 메소드를 사용해 값 타입을 변환하는 방법을 보여준다.
▶ Convert 클래스 : ChangeType 정적 메소드를 사용해 값 타입 변환하기 예제 (C#)
using System;
string sourceValue = "10";
int targetValue = (int)ConvertValueType(sourceValue, typeof(int));
Console.WriteLine("{0}, {1}", targetValue, targetValue.GetType());
▶ Convert 클래스 : ChangeType 정적 메소드를 사용해 값 타입 변환하기 (C#)
using System;
using System.ComponentModel;
using System.Globalization;
#region 값 타입 변환하기 - ConvertValueType(sourceValue, targetType, cultureInfo)
/// <summary>
/// 값 타입 변환하기
/// </summary>
/// <param name="sourceValue">소스 값</param>
/// <param name="targetType">타겟 타입</param>
/// <param name="cultureInfo">문화 정보</param>
/// <returns>타입 변환 값</returns>
public object ConvertValueType(object sourceValue, Type targetType, CultureInfo cultureInfo)
{
if(sourceValue != null)
{
var sourceType = sourceValue.GetType();
TypeConverter targetTypeConverter = TypeDescriptor.GetConverter(targetType);
if(targetTypeConverter != null && targetTypeConverter.CanConvertFrom(sourceValue.GetType()))
{
return targetTypeConverter.ConvertFrom(null, cultureInfo, sourceValue);
}
TypeConverter sourceTypeConverter = TypeDescriptor.GetConverter(sourceType);
if(sourceTypeConverter != null && sourceTypeConverter.CanConvertTo(targetType))
{
return sourceTypeConverter.ConvertTo(null, cultureInfo, sourceValue, targetType);
}
if(targetType.IsEnum && sourceValue is int)
{
return Enum.ToObject(targetType, (int)sourceValue);
}
if(!targetType.IsInstanceOfType(sourceValue))
{
return System.Convert.ChangeType(sourceValue, targetType, cultureInfo);
}
}
return sourceValue;
}
#endregion
#region 값 타입 변환하기 - ConvertValueType(sourceValue, targetType)
/// <summary>
/// 값 타입 변환하기
/// </summary>
/// <param name="sourceValue">소스 값</param>
/// <param name="targetType">타겟 타입</param>
/// <returns>타입 변환 값</returns>
public object ConvertValueType(object sourceValue, Type targetType)
{
return ConvertValueType(sourceValue, targetType, CultureInfo.InvariantCulture);
}
#endregion
728x90
그리드형(광고전용)
'C# > Common' 카테고리의 다른 글
[C#/COMMON] Console 클래스 : Clear 정적 메소드를 사용해 화면 지우기 (0) | 2018.01.17 |
---|---|
[C#/COMMON] Console 클래스 : Title 정적 속성을 사용해 콘솔 화면 제목 설정하기 (0) | 2018.01.17 |
[C#/COMMON] Path 클래스 : GetInvalidFileNameChars 정적 메소드를 사용해 적절한 파일명 구하기 (0) | 2018.01.17 |
[C#/COMMON] File 클래스 : Encrypt/Decrypt 메소드를 사용해 NTFS 파일 암호화 하기 (0) | 2018.01.17 |
[C#/COMMON] PropertyInfo 클래스 : SetValue 메소드를 사용해 속성 값 설정하기 (0) | 2018.01.13 |
[C#/COMMON] IPAddress 클래스 : TryParse 메소드를 사용해 IP 주소 여부 구하기 (0) | 2018.01.13 |
[C#/COMMON] Regex 클래스 : E 메일 주소 여부 구하기 (0) | 2018.01.13 |
[C#/COMMON] 공공 데이터 포털에서 국경일/공휴일/24절기 데이터 조회하기 (0) | 2017.12.26 |
[C#/COMMON] 숫자 문자 여부 구하기 (0) | 2017.12.25 |
[C#/COMMON] 영어 문자 여부 구하기 (0) | 2017.12.25 |