C# 입문 : 이론과 실습

Similar documents
C# 입문 : 이론과 실습

C# 입문 : 이론과 실습

PowerPoint Template

C# 입문 : 이론과 실습

제 1장 C#의 개요

PowerPoint Presentation

Visual Basic 반복문

JAVA PROGRAMMING 실습 08.다형성

gnu-lee-oop-kor-lec06-3-chap7

<4D F736F F F696E74202D2036C0CFC2B05FB0B4C3BCC1F6C7E2C7C1B7CEB1D7B7A1B9D62E707074>

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

PowerPoint 프레젠테이션

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

어댑터뷰

C++ Programming

C# 입문 : 이론과 실습

PowerPoint Presentation

Design Issues

자바 프로그래밍

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

쉽게 풀어쓴 C 프로그래밍

C# 입문 : 이론과 실습

JAVA PROGRAMMING 실습 05. 객체의 활용

chap 5: Trees

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

쉽게 풀어쓴 C 프로그래밍

PowerPoint Presentation

Microsoft PowerPoint - additional08.ppt [호환 모드]

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a

안드로이드기본 11 차시어댑터뷰 1 학습목표 어댑터뷰가무엇인지알수있다. 리스트뷰와스피너를사용하여데이터를출력할수있다. 2 확인해볼까? 3 어댑터뷰 1) 학습하기 어댑터뷰 - 1 -

JVM 메모리구조

Microsoft PowerPoint - 2강

클래스와객체 필드 메소드 중첩클래스 자료추상화 [2/35]

gnu-lee-oop-kor-lec10-1-chap10

Microsoft PowerPoint - C++ 5 .pptx

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

JAVA PROGRAMMING 실습 02. 표준 입출력

PowerPoint Presentation

PowerPoint Presentation

설계란 무엇인가?

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

PowerPoint Template

PowerPoint Presentation

슬라이드 1

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

쉽게 풀어쓴 C 프로그래밍

PowerPoint Presentation

PowerPoint Presentation

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

C++ Programming

리스트 (list), 선형리스트 (linear list): 순서를가진항목들의모임 집합 : 항목간의순서의개념이없음 L = n ( item0, item1,..., item -1) l 리스트의예 l 요일 : ( 일요일, 월요일,, 토요일 ) l 한글자음의모임 : ( ㄱ, ㄴ

PowerPoint Presentation

[ 그림 8-1] XML 을이용한옵션메뉴설정방법 <menu> <item 항목ID" android:title=" 항목제목 "/> </menu> public boolean oncreateoptionsmenu(menu menu) { getme

JAVA PROGRAMMING 실습 02. 표준 입출력

제8장 자바 GUI 프로그래밍 II

Microsoft PowerPoint - additional07.ppt [호환 모드]

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍

오버라이딩 (Overriding)

Microsoft PowerPoint - Chapter 6.ppt

1장. 리스트

Microsoft PowerPoint - CSharp-10-예외처리

C# Programming Guide - Types

Microsoft PowerPoint - e pptx

PowerPoint 프레젠테이션

Microsoft PowerPoint - 8ÀÏ°_Æ÷ÀÎÅÍ.ppt

교육자료

adfasdfasfdasfasfadf

슬라이드 1

06장.리스트

PowerPoint Presentation

1 1 제 1 장 C# 의개요 1.1 소개 1.2 콘솔 / 윈폼애플리케이션 C# 개발환경 콘솔애플리케이션 윈폼애플리케이션 C# 프로그램실행과정 1.3 기본특징 자료형 연산자 배열 스트

C++ Programming

7장

Chapter 4. LISTS

Microsoft PowerPoint - hci2-lecture12 [호환 모드]

(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345])

PowerPoint Template

PowerPoint 프레젠테이션

Microsoft PowerPoint - CSharp-2-기초문법

[ 그림 7-1] 프로젝트 res 폴더 이미지뷰 [ 예제 7-1] 이미지뷰 1 <LinearLayout 2 ~~~~ 중간생략 ~~~~ 3 android:orientation="vertical" > 4 <ImageView

PowerPoint Presentation

Chapter 6 Objects and Classes

Slide 1

Visual Basic Visual Basic 소개

(Microsoft PowerPoint - hci2-lecture12 [\310\243\310\257 \270\360\265\345])

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

PowerPoint 프레젠테이션

JUNIT 실습및발표

예외 예외정의예외발생예외처리예외전파 단정 단정의선언 단정조건검사옵션 2

Microsoft PowerPoint - Lect04.pptx

(Microsoft PowerPoint - java2-lecture3.ppt [\310\243\310\257 \270\360\265\345])

PowerPoint Presentation

Microsoft PowerPoint - hci2-lecture9.ppt [호환 모드]

(Microsoft Word - \301\337\260\243\260\355\273\347.docx)

JAVA PROGRAMMING 실습 09. 예외처리

2 Application Name: Day10_yhg <LinearLayout android:layout_weight="3" > /> an

Microsoft PowerPoint - lec2.ppt

ThisJava ..

Transcription:

시그네처 (signature) 메소드를구분하는정보 메소드이름매개변수의개수매개변수의자료형메소드반환형제외 메소드중복 (method overloading) 메소드의이름은같은데매개변수의개수와형이다른경우호출시컴파일러에의해메소드구별 메소드중복예 void SameNameMethod(int i) { /*... */ // 첫번째형태 void SameNameMethod(int i, int j) { /*... */ // 두번째형태

[ 예제 4.10 - MethodOverloadingApp.cs] using System; class MethodOverloadingApp { void SomeThing() { Console.WriteLine("SomeThing() is called."); void SomeThing(int i) { Console.WriteLine("SomeThing(int) is called."); void SomeThing(int i, int j) { Console.WriteLine("SomeThing(int,int) is called."); void SomeThing(double d) { Console.WriteLine("SomeThing(double) is called."); public static void Main() { MethodOverloadingApp obj = new MethodOverloadingApp(); obj.something(); obj.something(526); obj.something(54, 526); obj.something(5.26); 실행결과 : SomeThing() is called. SomeThing(int) is called. SomeThing(int,int) is called. SomeThing(double) is called.

생성자 (constructor) 예 ) 객체가생성될때자동으로호출되는메소드 클래스이름과동일하며반환형을갖지않음 주로객체를초기화하는작업에사용 생성자중복가능 예제 4.11 class Fraction { //... public Fraction(int a, int b) { numerator = a; denominator = b; //... Fraction f = new Fraction(1, 2); // 생성자

정적생성자 (static constructor) 수정자가 static으로선언된생성자매개변수와접근수정자를가질수없음클래스의정적필드를초기화할때사용 Main() 메소드보다먼저실행 정적필드초기화방법 정적필드선언과동시에초기화 정적생성자이용

[ 예제 4.12 - StaticConstructorApp.cs] using System; class StaticConstructor { static int staticwithinitializer = 100; static int staticwithnoinitializer; static Constructor() { // 매개변수와접근수정자를가질수없다. staticwithnoinitializer = staticwithinitializer + 100; public static void PrintStaticVariable() { Console.WriteLine("field 1 = {0, field 2 = {1", staticwithinitializer, staticwithnoinitializer); class StaticConstructorApp { public static void Main() { StaticConstructor.PrintStaticVariable(); 실행결과 : field 1 = 100, field 2 = 200

소멸자 (destructor) 예제 4.13 클래스의객체가소멸될때필요한행위를기술한메소드 소멸자의이름은생성자와동일하나이름앞에 ~(tilde) 를붙임 Finalize() 메소드 컴파일시소멸자를 Finalize() 메소드로변환해서컴파일 Finalize() 메소드재정의할수없음객체가더이상참조되지않을때 GC(Garbage Collection) 에의해호출 Dispose() 메소드 예제 4.14 CLR 에서관리되지않은자원을직접해제할때사용 자원이스코프를벗어나면즉시시스템에의해호출

파생클래스개념 상속 (inheritance) 베이스클래스의모든멤버들이파생클래스로전달되는기능 클래스의재사용성 (reusability) 증가 상속의종류 단일상속 베이스클래스 1 개 다중상속 베이스클래스 1 개이상 C# 은단일상속만지원

파생클래스의정의형태 [class-modifiers] class DerivedClassName : BaseClassName { // member declarations 파생클래스예 class BaseClass { int a; void MethodA{ //... class DerivedClass : BaseClass { int b; void MethodB{ //...

파생클래스의필드클래스의필드선언방법과동일베이스클래스의필드명과다른경우 - 상속됨베이스클래스의필드명과동일한경우 - 숨겨짐 base 지정어 베이스클래스멤버참조 - 예제 4.15 파생클래스의생성자형태와의미는클래스의생성자와동일명시적으로호출하지않으면, 기본생성자가컴파일러에의해자동적으로호출 예제 4.16 base() 베이스클래스의생성자를명시적으로호출 예제 4.17 실행과정필드의초기화부분실행베이스클래스의생성자실행파생클래스의생성자실행

메소드재정의 (method overriding) 베이스클래스에서구현된메소드를파생클래스에서구현된메소드로대체 메소드의시그네처가동일한경우 메소드재정의 메소드의시그네처가다른경우 메소드중복 예제 4.18

가상메소드 (virtual method) 지정어 virtual로선언된인스턴스메소드파생클래스에서재정의해서사용할것임을알려주는역할 new 지정어 객체형에따라호출 override 지정어 객체참조가가리키는객체에따라호출 봉인메소드 (sealed method) 수정자가 sealed로선언된메소드파생클래스에서재정의를허용하지않음봉인클래스 모든메소드는묵시적으로봉인메소드

리스트상자와유사한형태를지니며목록을구조적으로장식할수있는컨트롤 리스트상자 + 추가적인정보 ( 아이콘, 설명 )

ImageList 컴포넌트의작성 리스트뷰작성에앞서리스트뷰에서사용할아이콘을 ImageList 컴포넌트에등록 도구상자 ImageList 를선택하여 ImageList 컴포넌트를폼에추가 속성브라우저 Images 를선택하여 Image 컬렉션편집기를표시

ImageList 컴포넌트의작성 (cont.) Image 컬렉션편집기 추가 버튼을클릭하여 열기 대화상자를표시 등록할이미지파일을검색하여이미지로등록

ListView 컨트롤의추가 도구상자 ListView 를선택하여폼에추가 ListView 에사용할아이콘을설정 ListView 의 LargeImageList 와 SmallImageList 프로퍼티의값으로이미작성한 ImageList 컴포넌트의이름을배정 LargeImageList 프로퍼티 큰아이콘 (32x32) 에해당하는 ImageList 를설정 SmallImageList 프로퍼티 작은아이콘 (16x16) 에해당하는 ImageList 를설정

리스트뷰의열 (column) 을설정 리스트뷰를다수의열 (multi-column) 로작성할경우 속성브라우저 Columns 를선택하여 ColumnHeader 컬렉션편집기를표시 ColumnHeader 컬렉션편집기 추가 버튼을클릭하여리스트뷰에표시할열을추가 Text 프로퍼티 : 각열의표제에표시될문자열

리스트뷰의항목추가 속성브라우저 Items 를선택하여 ListViewItem 컬렉션편집기를표시 ImageIndex 프로퍼티 : ListView 의항목에대한아이콘설정

하나의항목에대한부항목입력 리스트뷰의열이설정되어있을경우 ListViewItem 컬렉션편집기에서 SubItems 프로퍼티를선택하여 ListViewSubItem 컬렉션편집기를표시 Text 프로퍼티 : 추가할항목을위한이름이나설명을설정

View 프로퍼티의값에따라다양한형태를가짐 System.Windows.Forms 네임스페이스에포함된 View 열거형을값으로가짐 View 열거형 기호상수 설명 LargeIcon 큰아이콘의형태 (1) SmallIcon 작은아이콘의형태 (2) List 간단한리스트형태 (3) Detail 자세한리스트형태 (4)

SelectedItems 프로퍼티 리스트뷰에서선택된항목을저장하는프로퍼티반환형 ListViewItem 클래스형리스트뷰의 MultiSelect 프로퍼티가거짓일경우 ListViewItem 클래스의배열형리스트뷰의 MultiSelect 프로퍼티가참일경우

[ 예제 11.1 ListViewApp.cs] 1) 폼설계 2) 컴포넌트 컴포넌트 : (Name) 프로퍼티인덱스값 ImageList : imagelist1 Images 0 FLGSKOR.ICO 1 FLGUSA2.ICO 2 FLGITALY.ICO 3 FLGCAN.ICO 4 FLGFRAN.ICO 이미지경로 : C:\Program Files\Microsoft Visual Studio.NET 2003\Common7\Graphics\icons\Flags

3) 프로퍼티 컨트롤 : (Name) 프로퍼티 값 Form : Form1 Text ListViewApp RadioButton : radiobutton1 Text LargeIcon Checked True RadioButton : radiobutton2 Text SmallIcon RadioButton : radiobutton3 Text List RadioButton : radiobutton4 Text Details Label : label1 Text columnheader1 Columns columnheader2 ListView : listview1 LargeImageList imagelist1 SmallImageList imagelist1 ColumnHeader : columnheader1 Text 국가 ColumnHeader : columnheader2 Text 국가번호

4) ListView의 Items 프로퍼티 Items 프로퍼티 값 프로퍼티 값 ImageIndex 0 ListViewItem0 ListViewSubItem0 Text 대한민국 SubItems ListViewSubItem1 Text 82 ImageIndex 1 ListViewItem1 ListViewSubItem0 Text 미국 SubItems ListViewSubItem1 Text 1 ImageIndex 2 ListViewItem2 ListViewSubItem0 Text 이탈리아 SubItems ListViewSubItem1 Text 39 ImageIndex 3 ListViewItem3 ListViewSubItem0 Text 캐나다 SubItems ListViewSubItem1 Text 1 ImageIndex 4 ListViewItem4 ListViewSubItem0 Text 프랑스 SubItems ListViewSubItem1 Text 33

5) 이벤트처리기 컨트롤 : (Name) 이벤트메소드명 RadioButton : radiobutton1 CheckedChanged radiobutton1_checkedchanged RadioButton : radiobutton2 CheckedChanged radiobutton2_checkedchanged RadioButton : radiobutton3 CheckedChanged radiobutton3_checkedchanged RadioButton : radiobutton4 CheckedChanged radiobutton4_checkedchanged ListView : listview1 Click listview1_click() private void radiobutton1_checkedchanged(object sender, EventArgs e) { if (radiobutton1.checked) // 리스트뷰의항목을큰아이콘형태로보여준다. listview1.view = View.LargeIcon; private void radiobutton2_checkedchanged(object sender, EventArgs e) { if (radiobutton2.checked) // 리스트뷰의항목을작은아이콘형태로보여준다. listview1.view = View.SmallIcon; private void radiobutton3_checkedchanged(object sender, EventArgs e) { if (radiobutton3.checked) // 리스트뷰의항목을간단한리스트형태로보여준다. listview1.view = View.List;

private void radiobutton4_checkedchanged(object sender, EventArgs e) { if (radiobutton4.checked) // 리스트뷰의항목을자세한리스트형태로보여준다. listview1.view = View.Details; private void listview1_click(object sender, EventArgs e) { foreach (ListViewItem item in listview1.selecteditems) { ListViewItem.ListViewSubItemCollection subitem = item.subitems; // 각항목에대한부항목을얻기위해 SubItems 프로퍼티를사용 label1.text = subitem[0].text + " 의국가번호는 " + subitem[1].text + " 입니다."; 실행방법 : 1 라디오버튼중하나를선택한다. 2 리스트뷰의항목을선택한다. 실행결과 :

목록을계층적으로보여주기위한컨트롤 노드를계층적으로표시 노드에이미지아이콘을추가할수있음

ImageList 컴포넌트의작성 트리뷰작성에앞서리스트뷰에서사용할아이콘을 ImageList 컴포넌트에등록 리스트뷰에서작성했던 ImageList 생성과정과동일 TreeView 컨트롤의추가 도구상자 TreeView 를선택하여폼에추가 TreeView 에사용할아이콘을설정 TreeView 의 ImageList 프로퍼티값으로이미작성한 ImageList 컴포넌트의이름을배정

TreeView 의노드작성 속성브라우저 Nodes 를선택하여트리노드편집기를표시 1 루트추가 (R) 버튼을클릭하여트리의루트노드를생성 2 자식추가 (C) 버튼을클릭하여특정노드의자식노드를삽입 3 삭제 (D) 버튼을클릭하여특정노드를제거 4 이미지 (I) 와선택한이미지 (S) 콤보상자를통해노드에아이콘추가

트리노드편집기를통해생성 TreeNode 클래스의객체 TreeView 컨트롤의 Nodes 프로퍼티에 TreeNodeCollection 형으로저장 TreeNodeCollection 클래스의메소드를통해노드의편집이가능함 TreeNodeCollection 클래스의메소드 메소드 Add(TreeNode node) Clear() Insert(int index, TreeNode node) Remove(TreeNode node) 설명트리뷰에새로운노드를추가트리뷰의모든노드를삭제트리뷰의지정된인덱스에노드를삽입트리뷰의노드중매개변수에해당하는노드를삭제

트리뷰의노드는 TreeNode 클래스의객체 TreeNodeCollection 클래스의메소드를사용할경우 TreeNode 클래스의객체를생성해야함 TreeNode 클래스의생성자 public TreeNode(string label); public TreeNode(string label, int idx1, int idx2); label : 노드이름에해당하는문자열 idx1 : 노드가선택되지않았을때의이미지인덱스 idx2 : 노드가선택되었을때의이미지인덱스

[ 예제 11.2 TreeViewApp.cs] 1) 폼설계 2) 컴포넌트 이미지경로 : C:\Program Files\Microsoft Visual Studio.NET2003\Common7\Graphics\icons\Win95 3) 프로퍼티 4) 멤버 public Form1() { treeview1.expandall(); // 트리뷰의모든노드를펼침

5) TreeView Nodes Node의레이블 프로퍼티 이미지 ( 인덱스 ) 선택한이미지 ( 인덱스 ) CLSDFOLD.ICO(0) CLSDFOLD.ICO(0) 클래식 베토벤 AUDIO.ICO(1) AUDIO.ICO(1) 슈베르트 AUDIO.ICO(1) AUDIO.ICO(1) 모짜르트 AUDIO.ICO(1) AUDIO.ICO(1) CLSDFOLD.ICO(0) CLSDFOLD.ICO(0) 팝 Britney Spears AUDIO.ICO(1) AUDIO.ICO(1) Mariah Carey AUDIO.ICO(1) AUDIO.ICO(1) Capenters AUDIO.ICO(1) AUDIO.ICO(1) CLSDFOLD.ICO(0) CLSDFOLD.ICO(0) 가요 이승철 AUDIO.ICO(1) AUDIO.ICO(1) 이미자 AUDIO.ICO(1) AUDIO.ICO(1) 송대관 AUDIO.ICO(1) AUDIO.ICO(1) 6) 이벤트처리기컨트롤 : (Name) 이벤트 메소드명 Button : button1 Click button1_click() Button : button2 Click button2_click()

private void button1_checkedchanged(object sender, EventArgs e) { if (textbox1.text!= && treeview1.selectnode!= null) { // 선택된노드가있으면, 그노드의자식노드로추가한다. treeview1.selectednode.nodes.add(new TreeNode(textBox1.Text, 1, 1)); textbox1.text = ; textbox1.focus(); private void button2_click(object sender, EventArgs e) { treeview1.nodes.remove(treeview1.selectednode); 실행방법 : 1 자식노드를추가할노드를선택한다. 2 텍스트상자에텍스트를입력한다. 3 노드추가버튼을클릭한다. 실행결과 :

SelectedNode 프로퍼티 트리뷰에서선택된노드를저장하는프로퍼티 반환형 TreeNode 클래스형 TreeNode 클래스의프로퍼티를이용하면선택된노드를기준으로부모, 이전형제, 다음형제, 자식노드를참조할수있음 TreeNode 클래스의프로퍼티 (p.486, 예제 11.3 참조 ) 메소드 Parent PrevNode NextNode Nodes 설명현재트리노드의부모노드현재트리노드의이전형제노드현재트리노드의다음형제노드현재트리노드의자식노드들

주어진목록에서항목을선택할수있는컨트롤 업다운버튼을이용하여필요한값을선택스핀컨트롤 (spin control) 영역업다운컨트롤 문자열로이루어진항목에서특정한항목을선택할수있는컨트롤 수치적업다운컨트롤 지정한범위내에서수치적값을선택할수있는컨트롤

영역업다운컨트롤의추가 도구상자 DomainUpDown 을선택하여폼에추가 영역업다운컨트롤의항목입력 속성브라우저 Items 를선택하여문자열컬렉션편집기를표시 영역업다운컨트롤의목록을위한항목을입력

[ 예제 11.4 DomainUpDownApp.cs] 1) 폼설계 2) 컴포넌트 3) 이벤트처리기 컨트롤 : (Name) 프로퍼티값 Form : Form1 Text DomainUpDownApp Button : button1 Text 선택 DomainUpDown : domainupdown1 Items Wrap 프로그래밍언어컴퓨터구성데이터베이스 True 컴파일러알고리즘운영체제 컨트롤 : (Name) 이벤트메소드명 Button : button1 Click Button1_Click() private void button1_click(object sender, EventArgs e) { MessageBox.Show(domainUpDown1.SelectedItem.Tostring()); 실행방법 : 도메인업다운컨트롤에서항목을선택한후, 선택버튼을클릭한다. 실행결과 :

수치적업다운컨트롤의추가 도구상자 NumericUpDown 을선택하여폼에추가 수치적업다운컨트롤의항목에대한범위와증가 / 감소량을설정 수치적업다운컨트롤의프로퍼티를통해설정 프로퍼티 설명 Minimum 수치적업다운컨트롤의최소값. Maximum 수치적업다운컨트롤의최대값. Increment 수치적업다운컨트롤의증가 / 감소양. Value 수치적업다운컨트롤의현재값. DecimalPlaces 수치적업다운컨트롤에표시할소수자릿수. ThousandsSeparator 10진수 3자리마다구분기호를삽입여부. Hexadecimal 수치적업다운컨트롤의값을 16진수로표시.

[ 예제 11.5 NumericUpDownApp.cs] 1) 폼설계 2) 프로퍼티 3) 이미지처리기 컨트롤 : (Name) 프로퍼티값 Form : Form1 Text NumericUpDownApp Label : label1 Text Log 0 = Label : label2 Text 0 * 0 = Label : label3 Text 0 = TextBox : textbox1 TextBox : textbox2 TextBox : textbox3 NumericUpDown : numericupdown1 Text Text Text Minimum 0 Maximum 1000 Increment 0.5 DecimalPlaces 1 컨트롤 : (Name) 이벤트메소드명 NumericUpDown : numericupdown1 ValueChanged numericupdown1_valuechanged()

private void numericupdown1_valuechanged(object sender, EventArgs e) { decimal d = numericupdown1.value; label1.text = Log + d + = ; textbox1.text = System.Math.Log10((double)d).ToString(); label2.text = d + * + d + = ; textbox2.text = System.Math.Pow((double)d,2).ToString(); label3.text = " " + d + " = "; textbox3.text = System.Math.Sqrt((double)d).ToString(); 실행방법 : 수치적업다운컨트롤의값을변경한다. 실행결과 :