Dreamine.UI.Wpf 1.0.1
Dreamine.UI.Wpf 사용자 인터페이스 기능과 구성 요소를 제공합니다.
로딩중...
검색중...
일치하는것 없음
Dreamine.UI.Wpf.Converters.MathConverter 클래스 참조

더 자세히 ...

Dreamine.UI.Wpf.Converters.MathConverter에 대한 상속 다이어그램 :
Dreamine.UI.Wpf.Converters.MathConverter에 대한 협력 다이어그램:

Public 멤버 함수

object Convert (object value, Type targetType, object parameter, CultureInfo culture)
object ConvertBack (object value, Type targetType, object parameter, CultureInfo culture)

상세한 설명

정수에 변환기 매개변수로 표현한 산술 연산을 적용합니다.

MathConverter.cs 파일의 15 번째 라인에서 정의되었습니다.

멤버 함수 문서화

◆ Convert()

object Dreamine.UI.Wpf.Converters.MathConverter.Convert ( object value,
Type targetType,
object parameter,
CultureInfo culture )
inline

원본 정수와 연산 문자열을 식으로 결합하여 계산합니다.

매개변수
value원본 정수입니다.
targetType대상 형식입니다.
parameter정수 뒤에 붙일 산술 연산 문자열입니다.
culture사용하지 않는 문화권입니다.
반환값
계산된 32비트 정수이며 계산 실패 시 원본 값입니다. 입력이 정수가 아니면 0입니다.

MathConverter.cs 파일의 65 번째 라인에서 정의되었습니다.

66 {
67 if (value is not int number)
68 return 0;
69
70 if (parameter is not string operate || string.IsNullOrWhiteSpace(operate))
71 return number;
72
73 string expr = $"{number}{operate}";
74
75 object resultObj;
76 try
77 {
78 // null 대신 string.Empty로 주면 nullable 경고/분석 꼬임이 줄어듭니다.
79 resultObj = new DataTable().Compute(expr, string.Empty);
80 }
81 catch
82 {
83 // 연산 문자열이 이상하면 원본 반환
84 return number;
85 }
86
87 // Compute 결과가 null/DBNull일 수 있으니 방어
88 if (resultObj is null || resultObj is DBNull)
89 return number;
90
91 // Compute은 보통 double/decimal 등을 뱉을 수 있음 → int로 안전 변환
92 if (resultObj is IConvertible)
93 {
94 try
95 {
96 return System.Convert.ToInt32(resultObj, CultureInfo.InvariantCulture);
97 }
98 catch
99 {
100 return number;
101 }
102 }
103
104 return number;
105 }

◆ ConvertBack()

object Dreamine.UI.Wpf.Converters.MathConverter.ConvertBack ( object value,
Type targetType,
object parameter,
CultureInfo culture )
inline

역변환은 구현되어 있지 않습니다.

매개변수
value대상 값입니다.
targetType원본 형식입니다.
parameter변환기 매개변수입니다.
culture변환 문화권입니다.
반환값
정상적으로 반환되지 않습니다.
예외
NotImplementedException호출할 때 항상 발생합니다.

MathConverter.cs 파일의 163 번째 라인에서 정의되었습니다.

164 {
165 throw new NotImplementedException();
166 }

이 클래스에 대한 문서화 페이지는 다음의 파일로부터 생성되었습니다.: