일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- chart.js
- 자바스크립트
- FCM
- UML
- WebView
- 설치
- Android
- PHP
- javascript
- 자동 생성
- mysql
- roundcube
- php 시큐어코딩
- xe
- C# IO
- 안드로이드 푸쉬
- dovecot
- soundpool
- Mail Server
- 폼메일
- html5
- 우분투
- php 취약점
- 안드로이드 gcm
- 안드로이드
- curl
- 안드로이드 푸시
- android 효과음
- C#
- not working
- Today
- Total
그러냐
델리게이트(delegate) 활용_2 본문
using System;
using System.Collections;
namespace FirstCon
{
class Archive
{
public static void Compress(int nFile)
{
for( int i = 0; i < nFile; i++ )
{
Console.WriteLine("{0}번째 파일을 압축하는 중이다...", i + 1);
System.Threading.Thread.Sleep(500);
}
}
}
class Program
{
static void Main()
{
Archive.Compress(10);
Console.WriteLine("모든 파일을 압축했습니다.");
}
}
}
/* 델리게이트 활용 */
using System;
using System.Collections;
namespace FirstCon
{
class Archive
{
public delegate void CompProg(int nFile);
public static void Compress(int nFile, CompProg Prog)
{
for( int i = 0; i < nFile; i++ )
{
Prog(i);
System.Threading.Thread.Sleep(500);
}
}
}
class Program
{
public static void Progress(int nFile)
{
Console.WriteLine("{0} 번째 파일을 압축하는 중입니다.", nFile + 1);
}
public static void EngProgress(int nFile)
{
Console.WriteLine("Now Compressing {0} File. Wait Please", nFile + 1);
}
static void Main()
{
Archive.Compress(10, EngProgress);
Console.WriteLine("모든 파일을 압축했습니다.");
}
}
}
/*
델리게이트 활용
사용자가 중간에 취소 할 수 있게
*/
using System;
using System.Collections;
namespace FirstCon
{
class Archive
{
public delegate bool CompProg(int nFile);
public static bool Compress(int nFile, CompProg Prog)
{
for( int i = 0; i < nFile; i++ )
{
if( Prog(i) == false )
return false;
System.Threading.Thread.Sleep(500);
}
return true;
}
}
class Program
{
public static bool Progress(int nFile)
{
Console.WriteLine("{0} 번째 파일을 압축하는 중입니다.(취소시 Esc).", nFile + 1);
if( Console.KeyAvailable )
{
ConsoleKeyInfo cki;
cki = Console.ReadKey(false);
if( cki.Key == ConsoleKey.Escape )
return false;
}
return true;
}
static void Main()
{
if( Archive.Compress(10, Progress) == true )
{
Console.WriteLine("모든 파일을 압축했습니다.");
}
else
{
Console.WriteLine("취소 되었습니다.");
}
}
}
}
[출처] 델리게이트(delegate) 활용_2|작성자 뚜비
'c#' 카테고리의 다른 글
이미지 회전 (0) | 2016.01.28 |
---|---|
php md5() 함수와 동일한 기능의 C#함수 (0) | 2016.01.28 |
델리게이트(delegate) 활용_1 (0) | 2016.01.28 |
C# 2.0의 새로운 기능들 (0) | 2016.01.28 |
C# Socket 클레스를 이용한 바이트단위 Socket 프로그램 (0) | 2016.01.28 |