<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0">
  <title type="html">five minutes of funk</title>
  <id>http://web20korea.com/</id>
  <link rel="alternate" type="text/html" hreflang="ko" href="http://web20korea.com/" />
  <subtitle type="html">그늘과 양지 객관과 주관 정적과 소음을 적당히 끌어들여서 세계와 소통할 수 있는 블로거들이 많이 생겼으면 좋겠다! - 작가 박범신</subtitle>
  <updated>2010-03-17T18:42:01+09:00</updated>
  <generator>Textcube 1.7.8 : Con moto</generator>
  <entry>
    <title type="html">제 아들놈이에요 ㅋㅋㅋ</title>
    <link rel="alternate" type="text/html" href="http://web20korea.com/328" />
    <link rel="replies" type="application/atom+xml" href="http://web20korea.com/atom/response/328" thr:count="0"/>
    <category term="i6020345" />
    <category term="이현종" />
    <author>
      <name>(web20korea)</name>
    </author>
    <id>http://web20korea.com/328</id>
    <updated>2010-03-17T14:47:31+09:00</updated>
    <published>2010-03-17T14:47:31+09:00</published>
    <summary type="html">&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a class=&quot;extensionIcon&quot; href=&quot;http://web20korea.com/attachment/1177088544.mp4&quot;&gt;&lt;img src=&quot;http://web20korea.com/image/extension/unknown.gif&quot; alt=&quot;&quot; /&gt; &lt;/a&gt;&lt;/div&gt;</summary>
  </entry>
  <entry>
    <title type="html">파견생활~+_+</title>
    <link rel="alternate" type="text/html" href="http://web20korea.com/327" />
    <link rel="replies" type="application/atom+xml" href="http://web20korea.com/atom/response/327" thr:count="0"/>
    <category term="i6020345" />
    <category term="극동빌딩" />
    <category term="충무로" />
    <author>
      <name>(web20korea)</name>
    </author>
    <id>http://web20korea.com/327</id>
    <updated>2010-03-17T10:31:32+09:00</updated>
    <published>2010-03-17T10:31:32+09:00</published>
    <summary type="html">즐겁다~ 왜?&lt;BR&gt;&lt;BR&gt;마이 배우고있응께 ㅋㅋㅋ&lt;BR&gt;&lt;BR&gt;충무로 맛집 지도를 만들어볼까 ㅡㅡ;;&lt;BR&gt;&lt;BR&gt;송죽은 강추</summary>
  </entry>
  <entry>
    <title type="html">DOKDO, This is part of Korea</title>
    <link rel="alternate" type="text/html" href="http://web20korea.com/325" />
    <link rel="replies" type="application/atom+xml" href="http://web20korea.com/atom/response/325" thr:count="0"/>
    <category term="i6020345" />
    <category term="DOKDO" />
    <category term="KOREA" />
    <category term="독도" />
    <author>
      <name>(web20korea)</name>
    </author>
    <id>http://web20korea.com/325</id>
    <updated>2010-03-02T08:53:00+09:00</updated>
    <published>2010-03-02T08:53:00+09:00</published>
    <summary type="html">&lt;object width=&quot;400&quot; height=&quot;345&quot; classid=&quot;clsid:d27cdb6e-ae6d-11cf-96b8-444553540000&quot; codebase=&quot;http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0&quot; id=&quot;V000410416&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://play.tagstory.com/player/TS00@V000410416@S000000200&quot; /&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot; /&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot; /&gt;&lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;&lt;embed src=&quot;http://play.tagstory.com/player/TS00@V000410416@S000000200&quot; width=&quot;400&quot; height=&quot;345&quot; name=&quot;V000410416&quot; allowScriptAccess=&quot;always&quot; allowFullScreen=&quot;true&quot; quality=&quot;high&quot; type=&quot;application/x-shockwave-flash&quot; pluginspage=&quot;http://www.macromedia.com/go/getflashplayer&quot;&gt;&lt;/embed&gt;&lt;/object&gt;</summary>
  </entry>
  <entry>
    <title type="html">메일주소가 2칸으로 나뉘어져있는 경우에 생각나서......</title>
    <link rel="alternate" type="text/html" href="http://web20korea.com/300" />
    <link rel="replies" type="application/atom+xml" href="http://web20korea.com/atom/response/300" thr:count="0"/>
    <category term="JavaScript" />
    <category term="javascript" />
    <author>
      <name>(web20korea)</name>
    </author>
    <id>http://web20korea.com/300</id>
    <updated>2010-02-19T20:38:05+09:00</updated>
    <published>2010-02-19T20:33:17+09:00</published>
    <summary type="html">&lt;div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://web20korea.com/attach/1/1403894033.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;32&quot; width=&quot;610&quot; /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;위와같이 메일주소를 2칸으로 입력받는경우에 뭐 직접입력, 등등 선택해서 많이들 사용하는경우가 &lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;요즘들어 빈번하게 작업이 있어서 하다 문득???&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;내가 이렇게 치고있는걸 발견했었다......&lt;/div&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://web20korea.com/attach/1/1130294688.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;34&quot; width=&quot;610&quot; /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;쩝 ㅋㅋㅋ 나만그런가...ㅠㅠㅠ&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;아무튼 이걸 해결하기 위해서 나름 머리를 굴리다가 아래와같은 스크립트를 만들어 보았다!!!&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;div style=&quot;text-align: left;&quot;&gt;function MoveToTail() {&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt; var str = document.frm.userEmail01.value;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;if(str.indexOf(&quot;@&quot;) &amp;gt; 0) {&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;		&lt;/span&gt;str = str.replace(/\@/g,&quot;&quot;);&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;		&lt;/span&gt;document.frm.userEmail01.value = str;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;		&lt;/span&gt;document.frm.userEmail02.focus();&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;}&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;}&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;앞쪽 텍스트 박스에 &lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;onkeydown=&quot;MoveToTail(this.value)&quot;&lt;br&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;이벤트를 추가시키면 나도몰래 메일주소를 @붙어셔 치고있는분들께는 꽤나 유용한 인터페이스가&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;되지 않을까 싶다 ㅎㅎ&lt;/div&gt;&lt;/div&gt;</summary>
  </entry>
  <entry>
    <title type="html">메모장</title>
    <link rel="alternate" type="text/html" href="http://web20korea.com/299" />
    <link rel="replies" type="application/atom+xml" href="http://web20korea.com/atom/response/299" thr:count="0"/>
    <category term="Project" />
    <category term="C#.NET" />
    <author>
      <name>(web20korea)</name>
    </author>
    <id>http://web20korea.com/299</id>
    <updated>2010-02-17T10:15:34+09:00</updated>
    <published>2010-02-17T10:15:34+09:00</published>
    <summary type="html">말그대로 메모장..ㅎㅎ&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;드래그 기능을 제외한 다른부분을 그대로 구현해보았음..&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a class=&quot;extensionIcon&quot; href=&quot;http://web20korea.com/attachment/1331882015.zip&quot;&gt;&lt;img src=&quot;http://web20korea.com/image/extension/zip.gif&quot; alt=&quot;&quot; /&gt; 실행파일.zip&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;a class=&quot;extensionIcon&quot; href=&quot;http://web20korea.com/attachment/1186838786.zip&quot;&gt;&lt;img src=&quot;http://web20korea.com/image/extension/zip.gif&quot; alt=&quot;&quot; /&gt; 소스.zip&lt;/a&gt;&lt;/div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;</summary>
  </entry>
  <entry>
    <title type="html">쓰레기들..ㅎㄷㄷ</title>
    <link rel="alternate" type="text/html" href="http://web20korea.com/298" />
    <link rel="replies" type="application/atom+xml" href="http://web20korea.com/atom/response/298" thr:count="0"/>
    <category term="i6020345" />
    <author>
      <name>(web20korea)</name>
    </author>
    <id>http://web20korea.com/298</id>
    <updated>2010-02-17T09:27:21+09:00</updated>
    <published>2010-02-17T09:27:21+09:00</published>
    <summary type="html">쇼트트랙.....이야기 보니까 정말&lt;BR&gt;&lt;BR&gt;쓰레기들.....많쿠나..라는 생각만 쩝....&lt;BR&gt;&lt;BR&gt;쓰레기색키들아.....&lt;BR&gt;&lt;BR&gt;이건뭐..... 에라이...쓰레기색키들...가치도 없는것들 ㅡㅡ</summary>
  </entry>
  <entry>
    <title type="html">촐라체</title>
    <link rel="alternate" type="text/html" href="http://web20korea.com/297" />
    <link rel="replies" type="application/atom+xml" href="http://web20korea.com/atom/response/297" thr:count="0"/>
    <category term="i6020345" />
    <category term="촐라체" />
    <author>
      <name>(web20korea)</name>
    </author>
    <id>http://web20korea.com/297</id>
    <updated>2010-02-08T09:20:02+09:00</updated>
    <published>2010-02-05T23:07:06+09:00</published>
    <summary type="html">&lt;P&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://web20korea.com/attach/1/1078908159.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;173&quot; width=&quot;121&quot; /&gt;&lt;/div&gt;&lt;BR&gt;&lt;BR&gt;간만에 읽은 소설..ㅎㅎ&lt;BR&gt;이야 나름 이렇게 책읽고 글쓰는걸 잘 하지 못하는데...절로 글을쓰게 만드는 책이었던...느낌이다.&lt;BR&gt;&lt;BR&gt;표지에 적힌 H.J 1996.11.5 SEOUL KOREA &quot;사랑해&quot; 영우,선우,마야,정순희 미안ㅎ.....&lt;BR&gt;미안ㅎ... 이걸 타자로 치고보니깐 아 미안~ ㅎㅎㅎ 과 흡사한데...흠 넘어가고 ㅡㅡ&lt;BR&gt;&lt;BR&gt;내용을 느낌으로 말하고싶지는 않은듯....그저 읽어보시라~ 이게 나의 짧은 서평이다 ㅎㅎ&lt;BR&gt;&lt;BR&gt;단지 소설을 읽는다는것을 나름 표현해보자면&lt;BR&gt;&lt;BR&gt;집에가는 길 내리는 버스정류장에 높은 건물이 하나 있는데 항상 가던 큰 건물옆이 어느날&lt;BR&gt;버스를 일찍 세워준 기사님덕에 몇골목 전에 내려서 집으로 향하는 어두운 골목에서&lt;BR&gt;그 건물을 멀찌감치 바라보는 심정이라고 말하고 싶다...&lt;BR&gt;&lt;BR&gt;&quot;아 저 건물이 저렇게 높았구나 맞아 저 간판을 보니까 저 건물에 저런것도 있었지라고 새삼 느끼는&lt;BR&gt;감회를 새롭게 해주는 무언가 ..... 하지만 다시금 그 건물옆을 지날즈음이면 익숙한 풍격에 반응하는&lt;BR&gt;감정이 다시 일상으로 언제 그런생각을 했었는지는 중요하지도 기억나지도 않는것처럼...&quot;&lt;BR&gt;&lt;BR&gt;마지막 페이지를 덮는순간까지도 나에게는 너무도 짠한~ 가족을 나를 친구를 일을 되돌아 볼수 있게해준&lt;BR&gt;촐라체 였다 ㅎㅎ 다시 일상으로 돌아왔지만 책상 한켠에 영교와 상민은 하릴없이 촐라체 정상을 향해&lt;BR&gt;도전하고&amp;nbsp; 있겠지...&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;박범신 작가님의 이 책을 볼 수 있었던 좋은 인연은 &lt;A class=entry-title title=&quot;hellow! blogger 대한민국 블로거 컨퍼런스.&quot; href=&quot;/160&quot; rel=bookmark&gt;&lt;U&gt;&lt;FONT color=#800080&gt;hellow! blogger 대한민국 블로거 컨퍼런스.&lt;/FONT&gt;&lt;/U&gt;&lt;/A&gt;&amp;nbsp;라는 글에서&lt;BR&gt;남겼던것처럼 직접 만날 수 있었던 기회가 있었던것인데 앞으로는 책에서도 자주 뵈었으면 하는 바램임~ ㅋ&lt;BR&gt;&lt;/A&gt;&lt;BR&gt;&lt;/P&gt;</summary>
  </entry>
  <entry>
    <title type="html">흠..지남이 덕에 만들어본? 테이블 제어 스클비트</title>
    <link rel="alternate" type="text/html" href="http://web20korea.com/296" />
    <link rel="replies" type="application/atom+xml" href="http://web20korea.com/atom/response/296" thr:count="0"/>
    <category term="JavaScript" />
    <category term="javascript" />
    <author>
      <name>(web20korea)</name>
    </author>
    <id>http://web20korea.com/296</id>
    <updated>2010-02-02T15:56:45+09:00</updated>
    <published>2010-02-02T15:54:10+09:00</published>
    <summary type="html">&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;html&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
&amp;lt;HTML&amp;gt;
&amp;nbsp;&amp;lt;HEAD&amp;gt;
&amp;lt;TITLE&amp;gt; New Document &amp;lt;/TITLE&amp;gt;
&lt;/textarea&gt;&lt;BR&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;js&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
&amp;lt;script type=&#039;text/javascript&#039;&amp;gt;
//&amp;lt;![CDATA[ 
function FNTableControl()
{
&amp;nbsp;var etable = document.getElementById(&#039;jin&#039;); &amp;nbsp;
&amp;nbsp;for( i = 0 ; i &amp;lt; etable.rows.length ;&amp;nbsp; i++ )
&amp;nbsp;{
&amp;nbsp; var row = etable.rows[i];
&amp;nbsp; for ( j = 0 ; j &amp;lt; row.cells.length ; j ++ )
&amp;nbsp; {
&amp;nbsp; &amp;nbsp;var cell = etable.rows[i].cells[j]; &amp;nbsp; &amp;nbsp;
&amp;nbsp;&amp;nbsp; if ( cell.name == &#039;charge&#039; )
&amp;nbsp; &amp;nbsp;{
&amp;nbsp; &amp;nbsp; cell.style.backgroundColor = &#039;#F30&#039;;
&amp;nbsp; &amp;nbsp; alert(cell.innerHTML);
&amp;nbsp; &amp;nbsp;}
&amp;nbsp; }
&amp;nbsp;}
}
//]]&amp;gt; 
&amp;lt;/script&amp;gt;
&lt;/textarea&gt;&lt;BR&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;html&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
&amp;nbsp;&amp;lt;/HEAD&amp;gt;
&amp;nbsp;&amp;lt;BODY&amp;gt;
&amp;nbsp; &amp;lt;table id=&#039;jin&#039; border=&#039;1&#039;&amp;gt;
&amp;nbsp;&amp;lt;tr&amp;gt;
&amp;nbsp; &amp;lt;td&amp;gt;네이버&amp;lt;/td&amp;gt;
&amp;nbsp; &amp;lt;td name=&#039;charge&#039;&amp;gt;홍길동&amp;lt;/td&amp;gt;
&amp;nbsp; &amp;lt;td&amp;gt;000-1111-2222&amp;lt;/td&amp;gt;
&amp;nbsp; &amp;lt;td&amp;gt;iiii@naver.com&amp;lt;/td&amp;gt;
&amp;nbsp;&amp;lt;/tr&amp;gt;
&amp;nbsp;&amp;lt;tr&amp;gt;
&amp;nbsp; &amp;lt;td&amp;gt;다음&amp;lt;/td&amp;gt;
&amp;nbsp; &amp;lt;td name=&#039;charge&#039;&amp;gt;춘향이&amp;lt;/td&amp;gt;
&amp;nbsp; &amp;lt;td&amp;gt;333-4444-5555&amp;lt;/td&amp;gt;
&amp;nbsp; &amp;lt;td&amp;gt;uuuu@daum.net&amp;lt;/td&amp;gt;
&amp;nbsp;&amp;lt;/tr&amp;gt;
&amp;nbsp;&amp;lt;tr&amp;gt;
&amp;nbsp; &amp;lt;td colspan=&#039;4&#039;&amp;gt;&amp;lt;input type=&#039;button&#039; value=&#039;test&#039; onclick=&#039;FNTableControl();&#039;&amp;gt;&amp;lt;/td&amp;gt;
&amp;nbsp;&amp;lt;/tr&amp;gt;
&amp;lt;/table&amp;gt;
&amp;nbsp;&amp;lt;/BODY&amp;gt;
&amp;lt;/HTML&amp;gt;
&lt;/textarea&gt;</summary>
  </entry>
  <entry>
    <title type="html">Array</title>
    <link rel="alternate" type="text/html" href="http://web20korea.com/295" />
    <link rel="replies" type="application/atom+xml" href="http://web20korea.com/atom/response/295" thr:count="0"/>
    <category term="C#.NET" />
    <category term="C#" />
    <author>
      <name>(web20korea)</name>
    </author>
    <id>http://web20korea.com/295</id>
    <updated>2010-02-01T09:58:29+09:00</updated>
    <published>2010-02-01T09:58:29+09:00</published>
    <summary type="html">&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
using System; namespace Ex07Array
{
&amp;nbsp; &amp;nbsp; class Program
&amp;nbsp; &amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; static void Main(string[] args)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Random r = new Random();
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #region 배열 선언 및 접근
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //1.
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //int[] ar1 = new int[10];
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //for (int i = 0; i &amp;lt; 10; i++)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //{
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // &amp;nbsp;&amp;nbsp; ar1[i] = r.Next(100, 1000);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //} &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //for (int i = 0; i &amp;lt; 10; i++)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //{
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // &amp;nbsp;&amp;nbsp; Console.WriteLine(&quot;ar[{0}] = {1}&quot;, i, ar1[i]);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //} &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //Console.WriteLine();
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //Console.WriteLine(); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #endregion &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 

&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #region 다차원 배열
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //2.
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //int[,] ar2 = new int[5, 7];
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //for (int i = 0; i &amp;lt; 5; i++)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //{
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // &amp;nbsp;&amp;nbsp; for (int j = 0; j &amp;lt; 7; j++)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // &amp;nbsp;&amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; ar2[i, j] = r.Next(100, 1000);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // &amp;nbsp;&amp;nbsp; }
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //} &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //for (int i = 0; i &amp;lt; 5; i++)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //{
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // &amp;nbsp;&amp;nbsp; for (int j = 0; j &amp;lt; 7; j++)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // &amp;nbsp;&amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; Console.Write(&quot;{0,5}&quot;,ar2[i,j]);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // &amp;nbsp;&amp;nbsp; }
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // &amp;nbsp;&amp;nbsp; Console.WriteLine();
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //} &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #endregion &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 

&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #region 배열 초기화
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ////3.
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //int[] ar3_1 = new int[10] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ////int[] ar3_1 = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ////int[] ar3_1 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //for (int i = 0; i &amp;lt; 10; i++)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //{
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // &amp;nbsp;&amp;nbsp; Console.Write(&quot;{0,3}&quot;,ar3_1[i]);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //}
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //Console.WriteLine(); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //int[,] ar3_2 = new int[2, 3] { {1, 2, 3}, {4, 5, 6} }; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //for (int i = 0; i &amp;lt; 2; i++)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //{
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // &amp;nbsp;&amp;nbsp; for (int j = 0; j &amp;lt; 3; j++)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // &amp;nbsp;&amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; Console.Write(&quot;{0,3}&quot;,ar3_2[i,j]);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // &amp;nbsp;&amp;nbsp; }
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // &amp;nbsp;&amp;nbsp; Console.WriteLine();
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //} &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #endregion &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 

&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #region 배열 지원 메서드 / 프로퍼티 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //4.
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //int[] ar4_1 = new int[10];
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ////배열.Length : 배열 요소의 갯수를 반환
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //for (int i = 0; i &amp;lt; ar4_1.Length; i++)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //{
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // &amp;nbsp;&amp;nbsp; ar4_1[i] = r.Next(100, 1000);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //} &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //Console.Write(&quot;Before Sorting : &quot;);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //for (int i = 0; i &amp;lt; ar4_1.Length; i++)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //{
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // &amp;nbsp;&amp;nbsp; Console.Write(&quot;{0,5}&quot;,ar4_1[i]);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //}
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //Console.WriteLine(); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //Console.Write(&quot;After Sorting : &quot;);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //Array.Sort(ar4_1); //오름차순 정렬
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ////Array.Reverse(ar4_1); //배열을 역순으로 재정렬
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //for (int i = 0; i &amp;lt; ar4_1.Length; i++)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //{
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // &amp;nbsp;&amp;nbsp; Console.Write(&quot;{0,5}&quot;,ar4_1[i]);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //}
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //Console.WriteLine(); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //Console.Write(&quot;Input Number : &quot;);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //int number = int.Parse(Console.ReadLine()); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //Console.WriteLine(&quot;입력된 숫자의 배열 내 위치 : {0}&quot;, Array.IndexOf(ar4_1, number));
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ////요소의 위치 없으면(-1) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ////////////////////////////////////////////////////////
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //int[,] ar4_2 = new int[2, 3];
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //for (int i = 0; i &amp;lt; ar4_2.GetLength(0); i++)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //{
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // &amp;nbsp;&amp;nbsp; for (int j = 0; j &amp;lt; ar4_2.GetLength(1); j++)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // &amp;nbsp;&amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; ar4_2[i, j] = r.Next(100, 1000);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // &amp;nbsp;&amp;nbsp; }
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //} &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //for (int i = 0; i &amp;lt; ar4_2.GetLength(0); i++)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //{
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // &amp;nbsp;&amp;nbsp; for (int j = 0; j &amp;lt; ar4_2.GetLength(1); j++)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // &amp;nbsp;&amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; Console.Write(&quot;{0,5}&quot;,ar4_2[i,j]);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // &amp;nbsp;&amp;nbsp; }
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // &amp;nbsp;&amp;nbsp; Console.WriteLine();
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //} &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #endregion &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 

&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #region 가변 배열 전달인자
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //5.
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //TestMethod(1);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //TestMethod(1, 2);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //TestMethod(1,2,3,4,5,6,7,8); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #endregion &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 

&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #region Zagged Array
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //6.
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int[][] ar6 = new int[10][];
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (int i = 0; i &amp;lt; ar6.Length; i++)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ar6[i] = new int[r.Next(5, 15)];
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (int i = 0; i &amp;lt; ar6.Length; i++)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (int j = 0; j &amp;lt; ar6[i].Length; j++)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ar6[i][j] = r.Next(100, 1000);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (int i = 0; i &amp;lt; ar6.Length; i++)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (int j = 0; j &amp;lt; ar6[i].Length; j++)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Console.Write(&quot;{0,5}&quot;,ar6[i][j]);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Console.WriteLine();
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #endregion
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //가변 배열 전달인자 관련
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; private static void TestMethod(params int[] p)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Console.WriteLine(&quot;전달인자의 갯수 : {0}&quot;,p.Length);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; }
}
&lt;/textarea&gt;</summary>
  </entry>
  <entry>
    <title type="html">Method</title>
    <link rel="alternate" type="text/html" href="http://web20korea.com/294" />
    <link rel="replies" type="application/atom+xml" href="http://web20korea.com/atom/response/294" thr:count="0"/>
    <category term="C#.NET" />
    <category term="C#" />
    <author>
      <name>(web20korea)</name>
    </author>
    <id>http://web20korea.com/294</id>
    <updated>2010-02-01T09:54:13+09:00</updated>
    <published>2010-02-01T09:54:13+09:00</published>
    <summary type="html">&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
using System; namespace Ex05Method
{
&amp;nbsp; &amp;nbsp; class Program
&amp;nbsp; &amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; static void Main(string[] args)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Console.Write(&quot;박스그리기에 사용할 문자 : &quot;);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; string drawingUnit = Console.ReadLine();
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int width = InputInt(&quot;박스의 넓이 : &quot;); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int height = InputInt(&quot;박스의 높이 : &quot;); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DrawBox(drawingUnit, width, height);//호출시 데이터 전달
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; private static int InputInt(string message)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Console.Write(message + &quot; : &quot;);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int data = int.Parse(Console.ReadLine());
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //메스드를 종료하고 메서드 호출 영역으로 data를 반환
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return data;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 

&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; private static void DrawBox(string drawingUnit, int width, int height)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (int i = 0; i &amp;lt; height; i++)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (int j = 0; j &amp;lt; width; j++)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (i == 0 || i == height - 1 ||
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; j == 0 || j == width - 1)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //Console.Write(&quot;*&quot;);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Console.Write(drawingUnit);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Console.Write(&quot; &quot;);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Console.WriteLine();
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; }
}
&lt;/textarea&gt;</summary>
  </entry>
  <entry>
    <title type="html">연산자</title>
    <link rel="alternate" type="text/html" href="http://web20korea.com/293" />
    <link rel="replies" type="application/atom+xml" href="http://web20korea.com/atom/response/293" thr:count="0"/>
    <category term="C#.NET" />
    <category term="C#" />
    <author>
      <name>(web20korea)</name>
    </author>
    <id>http://web20korea.com/293</id>
    <updated>2010-02-01T09:51:03+09:00</updated>
    <published>2010-02-01T09:51:03+09:00</published>
    <summary type="html">&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
using System; namespace Ex04ControlStatement
{
&amp;nbsp; &amp;nbsp; class Program
&amp;nbsp; &amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; static void Main(string[] args)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //Calculator (+, -, *, /, %) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #region input operation
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Console.Write(&quot;Input First Operand : &quot;);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int operanda = int.Parse(Console.ReadLine());
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Console.Write(&quot;Input Operator (+,-,*,/,%) : &quot;);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; string op = Console.ReadLine();
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Console.Write(&quot;Input Second Operand : &quot;);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int operandb = int.Parse(Console.ReadLine());
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #endregion &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int result = 0; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #region operation (if - else)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //if (op.Equals(&quot;+&quot;))
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //{
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // &amp;nbsp;&amp;nbsp; result = operanda + operandb;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //}
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //else if (op == &quot;-&quot;)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // &amp;nbsp;&amp;nbsp; result = operanda - operandb;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //else if (op == &quot;*&quot;)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // &amp;nbsp;&amp;nbsp; result = operanda * operandb;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //else if (op == &quot;/&quot;)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // &amp;nbsp;&amp;nbsp; result = operanda / operandb;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //else if (op == &quot;%&quot;)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // &amp;nbsp;&amp;nbsp; result = operanda % operandb;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //else
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //{
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // &amp;nbsp;&amp;nbsp; Console.WriteLine(&quot;Invalid Operator !!!&quot;);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // &amp;nbsp;&amp;nbsp; return;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //}
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #endregion &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #region operation (switch - case)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; switch (op)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case &quot;+&quot;: result = operanda + operandb; break;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case &quot;-&quot;: result = operanda - operandb; break;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case &quot;*&quot;: result = operanda * operandb; break;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case &quot;/&quot;: result = operanda / operandb; break;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case &quot;%&quot;: result = operanda % operandb; break;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; default: 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Console.WriteLine(&quot;Invalid Operator&quot;);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; break;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #endregion &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Console.WriteLine(
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;{0} {1} {2} = {3}&quot;, 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; operanda, op, operandb, result);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; }
}
/*
관계연산자 (두 데이터의 대소 관계를 비교 --&amp;gt; 참/거짓 판단)
1. == : 같다 (cf : 대입연산자(=)와 구분)
2. != : 다르다
3. &amp;gt;&amp;nbsp; : 크다
4. &amp;gt;= : 크거나 같다
5. &amp;lt;&amp;nbsp; : 작다
6. &amp;lt;= : 작거나 같다 ex) 10 == 10 : true, 10 == 5 : false */
&lt;/textarea&gt;</summary>
  </entry>
  <entry>
    <title type="html">Windows Form 띄워보기</title>
    <link rel="alternate" type="text/html" href="http://web20korea.com/292" />
    <link rel="replies" type="application/atom+xml" href="http://web20korea.com/atom/response/292" thr:count="0"/>
    <category term="C#.NET" />
    <category term="C#" />
    <author>
      <name>(web20korea)</name>
    </author>
    <id>http://web20korea.com/292</id>
    <updated>2010-02-01T09:47:53+09:00</updated>
    <published>2010-02-01T09:47:31+09:00</published>
    <summary type="html">&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
using System;
using System.Windows.Forms;
using System.Drawing; 
namespace Ex03WinForm
{
&amp;nbsp; &amp;nbsp; class Program
&amp;nbsp; &amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; static void Main(string[] args)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Form form = new Form();
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; form.Text = &quot;Hello, Windows Forms&quot;;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; form.Width = 500;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; form.Height = 350;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; form.BackColor = Color.Orange; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Button button = new Button();
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; button.Width = 200;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; button.Height = 100;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; button.BackColor = Color.Purple;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; button.Text = &quot;Push Me !!!!!&quot;;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int x = form.ClientRectangle.Width / 2 - 100;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int y = form.ClientRectangle.Height / 2 - 50;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; button.Location = new Point(x, y);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; button.Click += new EventHandler(button_Click); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; form.Controls.Add(button); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //form.Show();//Modeless 방식
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; form.ShowDialog();//Modal 방식
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; static void button_Click(object sender, EventArgs e)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MessageBox.Show(&quot;Thank You for Clicking Me !!!!!&quot;);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; static void form_MouseClick(object sender, MouseEventArgs e)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MessageBox.Show(&quot;X : &quot; + e.X + &quot; / Y : &quot; + e.Y);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; static void form_Click(object sender, EventArgs e)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MessageBox.Show(&quot;폼 위에서 마우스가 클릭되었습니다.&quot;);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; }
}
&lt;/textarea&gt;</summary>
  </entry>
  <entry>
    <title type="html">Type</title>
    <link rel="alternate" type="text/html" href="http://web20korea.com/291" />
    <link rel="replies" type="application/atom+xml" href="http://web20korea.com/atom/response/291" thr:count="0"/>
    <category term="C#.NET" />
    <category term="C#" />
    <author>
      <name>(web20korea)</name>
    </author>
    <id>http://web20korea.com/291</id>
    <updated>2010-02-01T09:44:32+09:00</updated>
    <published>2010-02-01T09:43:54+09:00</published>
    <summary type="html">Person.cs&lt;BR&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
using System; enum RelationType
{
&amp;nbsp; &amp;nbsp; Family = 1,
&amp;nbsp; &amp;nbsp; Friend,//2
&amp;nbsp; &amp;nbsp; Biz,//3
&amp;nbsp; &amp;nbsp; Community//4
} struct Person
{
&amp;nbsp; &amp;nbsp; //public int Number;
&amp;nbsp; &amp;nbsp; public Int32 Number;
&amp;nbsp; &amp;nbsp; public string Name;
&amp;nbsp; &amp;nbsp; public string Phone;
&amp;nbsp; &amp;nbsp; public string Email;
&amp;nbsp; &amp;nbsp; public RelationType Relation;
}
&lt;/textarea&gt;&lt;BR&gt;&lt;BR&gt;Program.cs&lt;BR&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
using System; namespace Ex02Type
{
&amp;nbsp; &amp;nbsp; class Program
&amp;nbsp; &amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; static void Main(string[] args)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //객체 생성
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Person person = new Person(); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; //값 할당
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; person.Number = 1;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; person.Name = &quot;장동건&quot;;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; person.Phone = &quot;010-9563-4487&quot;;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; person.Email = &quot;&lt;A href=&quot;mailto:jdk@example.com&quot;&gt;jdk@example.com&lt;/A&gt;&quot;;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; person.Relation = RelationType.Biz; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Console.WriteLine(&quot;[{0}][{1}][{2}][{3}][{4}][{5}]&quot;,
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; person.Number, person.Name,
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; person.Phone, person.Email,
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; person.Relation, (int)person.Relation); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; }
}
&lt;/textarea&gt;</summary>
  </entry>
  <entry>
    <title type="html">Hello, Visual Studio</title>
    <link rel="alternate" type="text/html" href="http://web20korea.com/290" />
    <link rel="replies" type="application/atom+xml" href="http://web20korea.com/atom/response/290" thr:count="0"/>
    <category term="C#.NET" />
    <category term="C#" />
    <author>
      <name>(web20korea)</name>
    </author>
    <id>http://web20korea.com/290</id>
    <updated>2010-02-01T09:41:18+09:00</updated>
    <published>2010-02-01T09:40:27+09:00</published>
    <summary type="html">&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
using System; namespace Ex01Greetings
{
&amp;nbsp; &amp;nbsp; class Program
&amp;nbsp; &amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /// &amp;lt;summary&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /// 프로그램 진입점
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /// &amp;lt;/summary&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /// &amp;lt;param name=&quot;args&quot;&amp;gt;&amp;lt;/param&amp;gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public static void Main(string[] args)//Entry Point
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Console.WriteLine(&quot;Hello, Visual Studio&quot;);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Console.Write(&quot;현재 시각은 &quot;);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Console.Write(System.DateTime.Now.ToString());
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Console.WriteLine(&quot; 입니다.&quot;); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int 변수;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 변수 = 10;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public void Test() { }
&amp;nbsp; &amp;nbsp; }
}
&lt;/textarea&gt;</summary>
  </entry>
  <entry>
    <title type="html">C# 메모리 구조로 보는 간단한 배열할당과 박싱 언박싱</title>
    <link rel="alternate" type="text/html" href="http://web20korea.com/289" />
    <link rel="replies" type="application/atom+xml" href="http://web20korea.com/atom/response/289" thr:count="0"/>
    <category term="C#.NET" />
    <category term=".net" />
    <category term="C#" />
    <category term="메모리구조" />
    <author>
      <name>(web20korea)</name>
    </author>
    <id>http://web20korea.com/289</id>
    <updated>2010-01-21T09:35:17+09:00</updated>
    <published>2010-01-21T09:35:17+09:00</published>
    <summary type="html">&lt;H3&gt;메모리의 구조&lt;/H3&gt;
&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://web20korea.com/attach/1/1095944858.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;233&quot; width=&quot;450&quot; /&gt;&lt;/div&gt;
&lt;H3&gt;박싱 언박싱&lt;/H3&gt;
&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://web20korea.com/attach/1/1332047101.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;310&quot; width=&quot;450&quot; /&gt;&lt;/div&gt;
&lt;H3&gt;배열&lt;/H3&gt;
&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
a = 1, b = 1&amp;nbsp; : a == b 는 true
int[] ar1 = new int[] {1,2,3}
int[] ar2 = new int[] {1,2,3}
&amp;nbsp;: ar1 == ar2 는 false
&lt;/textarea&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://web20korea.com/attach/1/1064396703.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;226&quot; width=&quot;450&quot; /&gt;&lt;/div&gt;
&lt;H3&gt;Call By Value&lt;/H3&gt;
&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
using System;
namespace ConClass
{
&amp;nbsp; &amp;nbsp; class MyClass
&amp;nbsp; &amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public void IntegerCallByValue(int num)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; num = 200;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public void ArrayCallByValue(int[] MyArray)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (int i = 0; i &amp;lt; MyArray.Length; i++)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MyArray[i] = 0;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public void StringCallByValue(string str)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; str = &quot;Korea&quot;;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; }
&lt;/textarea&gt;&lt;BR /&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
&amp;nbsp;class Program
&amp;nbsp; &amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public static void Main()
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MyClass mc = new MyClass();
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int num = 30;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mc.IntegerCallByValue(num);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Console.WriteLine(num);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Console.WriteLine();
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int[] MyArray = new int[] { 10, 20, 30 };
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mc.ArrayCallByValue(MyArray);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (int i = 0; i &amp;lt; MyArray.Length; i++)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Console.WriteLine(MyArray[i]);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Console.WriteLine();
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; string str = &quot;Seoul&quot;;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mc.StringCallByValue(str);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Console.WriteLine(str);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; }
}
&lt;/textarea&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://web20korea.com/attach/1/1119549014.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;377&quot; width=&quot;450&quot; /&gt;&lt;/div&gt;
&lt;br /&gt;</summary>
  </entry>
  <entry>
    <title type="html">11 C# 생성자(Constructor)</title>
    <link rel="alternate" type="text/html" href="http://web20korea.com/287" />
    <link rel="replies" type="application/atom+xml" href="http://web20korea.com/atom/response/287" thr:count="0"/>
    <category term="C#.NET" />
    <category term="C#" />
    <author>
      <name>(web20korea)</name>
    </author>
    <id>http://web20korea.com/287</id>
    <updated>2010-01-21T09:02:25+09:00</updated>
    <published>2010-01-21T08:59:25+09:00</published>
    <summary type="html">&lt;H3&gt;생성자(constructor)&lt;/H3&gt;
&lt;P&gt;class instance의 생성&lt;/P&gt;
&lt;P&gt;new 연산자를 사용, heap 영역에 저장&lt;BR&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
Customer cu1 = new Customer(); // default 생성자를 호출하여 객체 생성
cu1.CustPoint++; &amp;nbsp; // 생성된 객체의 사용
&lt;/textarea&gt;&lt;/P&gt;
&lt;H3&gt;생성자의 특징&lt;/H3&gt;
&lt;P&gt;클래스와 같은 이름&lt;/P&gt;
&lt;P&gt;리턴값이 없음&lt;/P&gt;
&lt;P&gt;주로 멤버필드의 초기화에 사용&lt;/P&gt;
&lt;P&gt;파라메터가 서로 다른 여러개의 생성자를 갖을 수 있다.- 메소드 오버로딩&lt;/P&gt;
&lt;P&gt;새롭게 파라메터가 있는 custom constructor를 만들면 반드시 &lt;FONT color=#0000ff&gt;별도로 default constructor를 재정의해&lt;/FONT&gt; 주어야 한다.&lt;/P&gt;
&lt;H3&gt;생성자의 정의&lt;/H3&gt;
&lt;P&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
class Customer{
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int custpoint = 0;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; string custname; &amp;nbsp;public Customer(){ &amp;nbsp; // 생성자
&amp;nbsp; custpoint = 1; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; // custpoint member field 초기화
&amp;nbsp;}
&amp;nbsp;public Customer(int custpoint, string name){ // custom constructor
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // integer 인수가 두 개인 생성자, overloading
&amp;nbsp; this.custpoint = custpoint;
&amp;nbsp; custname = name;
&amp;nbsp;}
}
&lt;/textarea&gt;&lt;/P&gt;
&lt;H3&gt;생성자의 호출&lt;/H3&gt;
&lt;P&gt;new 연산자를 통해 인스턴스를 생성할 때 호출&lt;BR&gt;생성자 파라메터가 없으면 default 생성자가 호출&lt;BR&gt;파라메터가 있다면, 파라메터의 자료형과 순서가 일치하는 생성자 호출&lt;/P&gt;
&lt;P&gt;생성자를 정의하지 않으면 C# Compiler가 파라메터가 없는 생성자(default constructor)를 자동으로 생성&lt;BR&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
Customer cu1 = new Customer();&amp;nbsp; // custpoint = 1 이 설정됨
Customer cu2 = new Customer(10, “홍길동”);
&lt;/textarea&gt;&lt;/P&gt;
&lt;H3&gt;자신의 타입(class)을 파라메터로 받는 생성자&lt;/H3&gt;
&lt;P&gt;하나의 클래스 인스턴스와 동일한 복사본 값이 저장된 새로운 인스턴스를 생성할 때 유용&lt;BR&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
class Customer{
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; string corpName;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; string custName;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ...... &amp;nbsp; // 생략
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public Customer(string corpName, string custName)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; { this.corpName = corpName; this.custName = custName; }
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public Customer(Customer cu, string custName) //클래스의 타입을 생성자로 갖는 경우 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; { corpName = cu.corpName; this.custName = custName;}
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ...... // corpName, custName을 접근하는 readonly property인&amp;nbsp; CorpName, CustName 정의
}
...... &amp;nbsp; // 생략
Customer cu1 = new Customer(&quot;ㅇㅇ기업&quot;, &quot;홍길동&quot;);
Customer cu2 = new Customer(cu1, &quot;전우치&quot;); //같은 객체의 값을 가질경우
Console.WriteLine(cu2.CorpName + &quot;&amp;nbsp; &quot; + cu2.CustName); // ‘(주)단국기업 강태주’ 출력
&lt;/textarea&gt;&lt;/P&gt;
&lt;H3&gt;this&lt;/H3&gt;
&lt;P&gt;class 자기자신을 가리키는 지시자&lt;BR&gt;생성자에서 다른 생성자를 호출하는 호출자&lt;BR&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
class Customer{
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int age;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; string username; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public Customer():this(“홍길동&quot;, 20){ 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; // 여기서 this는 다른 생성자를 호출하는 용도로 사용
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public Customer(string name, int age){
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.age = age; &amp;nbsp; &amp;nbsp;&amp;nbsp; // 여기서 this는 Customer class를 가지킨다.
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; username = name;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
}
&lt;/textarea&gt;&lt;/P&gt;
&lt;H3&gt;정적 생성자(static constructor)&lt;/H3&gt;
&lt;P&gt;parameter가 없으며, static 키워드로 정의된 생성자&lt;BR&gt;class의 정적 멤버 필드(static member field)를 초기화하는 용도로 사용&lt;BR&gt;.NET Runtime에 의해 호출되기 때문에 접근 제한자가 없다.&lt;/P&gt;
&lt;P&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
class Customer{
&amp;nbsp;static int MaxLength;&amp;nbsp; // static member field, 모든 instance가 공유
&amp;nbsp;public Customer(){ …… } // constructor
&amp;nbsp;static Customer(){ // static constructor
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MaxLength = 20;&amp;nbsp; // static member field 초기화
&amp;nbsp;}
}
&lt;/textarea&gt;&lt;/P&gt;
&lt;H3&gt;접근 제한자(access modifier)&lt;/H3&gt;
&lt;P&gt;class의 member 를 private(비공개, default)로 정의하면 클래스 외부에서 멤버에 접근불가&lt;BR&gt;일반적으로 class의 member field는 private로 설정&lt;BR&gt;public member method를 정의하여 이 method에서 private field에 접근하도록 프로그래밍&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff&gt;public&lt;/FONT&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 어느 class 나 instance 에서도 접근 가능&lt;BR&gt;&lt;FONT color=#0000ff&gt;private(default)&lt;/FONT&gt; 오직 class 내부에서만 접근가능&lt;BR&gt;&lt;FONT color=#0000ff&gt;protected&lt;/FONT&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; class 내부와 상속받은 sub class 에서만 접근 가능&lt;BR&gt;&lt;FONT color=#0000ff&gt;internal&lt;/FONT&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; assembly 안에서만 접근가능&lt;BR&gt;&lt;FONT color=#0000ff&gt;protected internal&lt;/FONT&gt; &amp;nbsp;&amp;nbsp; protected나 internal로 접근가능&lt;/P&gt;</summary>
  </entry>
  <entry>
    <title type="html">10 C# 클래스(Class) 2 중첩 클래스_클래스 멤버</title>
    <link rel="alternate" type="text/html" href="http://web20korea.com/286" />
    <link rel="replies" type="application/atom+xml" href="http://web20korea.com/atom/response/286" thr:count="0"/>
    <category term="C#.NET" />
    <category term=".net" />
    <category term="C#" />
    <author>
      <name>(web20korea)</name>
    </author>
    <id>http://web20korea.com/286</id>
    <updated>2010-01-21T09:12:37+09:00</updated>
    <published>2010-01-21T08:56:18+09:00</published>
    <summary type="html">&lt;H3&gt;중첩 클래스(nested class)&lt;/H3&gt;
class 안에 또다른 class를 정의&lt;BR /&gt;class가 논리적으로 다른 class에 포함되어 있지만, 독립적으로는 별 의미가 없을 때 중첩 클래스로 구성
outer class = 주 역할, nested class = 보조 역할
public, internal 접근 제한자일 때 outer class 밖에서도 접근 가능(하지만 제공 목적상 outer 에서 주로 사용)
외부에서 nested class에 접근하려면 outer class를 포함하여 type을 지정
&lt;H3&gt;중첩 클래스(nested class)&lt;/H3&gt;
&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
class MyClass{
&amp;nbsp;private MyNestedClass mnc; // outer class에서 nested class 접근
&amp;nbsp;public MyClass(){ mnc = new MyNestedClass(); }
&amp;nbsp;class MyNestedClass{ // nested class 정의
&amp;nbsp; public void DisplayString(){
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // nested class member 정의
&amp;nbsp; }
&amp;nbsp;}
&amp;nbsp;public PrintString(){ mnc.DisplayString(); }
&amp;nbsp;// nested class는 outer class에서만…
} MyClass.MyNestedclass mnc = new MyClass.MyNestedClass();
// 외부에서 접근시… 하지만 가급적 피해야…
&lt;/textarea&gt;
&lt;H3&gt;member method&lt;/H3&gt;
&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
class Customer{
&amp;nbsp;int custpoint = 0; &amp;nbsp; &amp;nbsp; &amp;nbsp; // member field&amp;nbsp;public int GetCustPoint(){ // member method
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return custpoint;
&amp;nbsp;}
&amp;nbsp;public void SetCustPoint(int point){
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; this.custpoint = point;
&amp;nbsp;}
}
// Customer class를 사용하는 다른 class 에서 고객 john의 구매 포인트를 1만큼 증가
Customer john = new Customer();
john.SetCustPoint(john.GetCustPoint() + 1);
&lt;/textarea&gt;

&lt;H3&gt;member property&lt;/H3&gt;
&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
class Customer{
&amp;nbsp;int custpoint = 0; &amp;nbsp; &amp;nbsp; &amp;nbsp; // member field&amp;nbsp;public int CustPoint{ &amp;nbsp; // member property
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; get{return custpoint;}
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; set{
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; custpoint = value;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&amp;nbsp;}
}
// Customer class를 사용하는 다른 class 에서 고객 john의 구매 포인트를 1만큼 증가
Customer john = new Customer();
john.CustPoint++;&amp;nbsp; // method로 접근하는 방법보다 쉽게 접근이 가능
&lt;/textarea&gt;

&lt;H3&gt;member property&lt;/H3&gt;
set 접근자&lt;BR /&gt;void 형 메소드와 같음&lt;BR /&gt;value 라는 특수한 parameter가 사용됨, 이 value에는 property를 설정하기 위한 값이 전달됨
property를 읽기전용으로 하려면 set 접근자를 생략하면 되고&lt;BR /&gt;property를 쓰기전용으로 하려면 get 접근자를 생략하면 된다.
&lt;H3&gt;static method, instance method&lt;/H3&gt;
class에 정의된 member method 중 static이라는 키워드가 붙어있는 method 는 class 이름으로 호출&lt;BR /&gt;class 의 member method
class에 정의된 member method 중 static이라는 키워드가 붙지 않은 method는 class의 instance로 호출&lt;BR /&gt;instance(객체)의 member method
예&lt;BR /&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
&amp;nbsp;MyClass mc = new MyClass();
&amp;nbsp;mc.AnyMethod(); &amp;nbsp; // instance의 method member
&amp;nbsp;System.Threading.Thread.Sleep(100000); // class의 method member 
&lt;/textarea&gt;</summary>
  </entry>
  <entry>
    <title type="html">객체 지향의 기초</title>
    <link rel="alternate" type="text/html" href="http://web20korea.com/285" />
    <link rel="replies" type="application/atom+xml" href="http://web20korea.com/atom/response/285" thr:count="0"/>
    <category term="C#.NET" />
    <category term="C#" />
    <category term="OOP" />
    <author>
      <name>(web20korea)</name>
    </author>
    <id>http://web20korea.com/285</id>
    <updated>2010-01-21T08:54:18+09:00</updated>
    <published>2010-01-21T08:54:18+09:00</published>
    <summary type="html">&lt;H3&gt;클래스란?&lt;/H3&gt;
&lt;P&gt;아리스토텔레스에 따르면&lt;BR&gt;인간이 사물을 인식하는 방식&lt;BR&gt;먼저 사물의 공통적인 행위와 속성을 인식&lt;BR&gt;공통적인 행위와 속성에 대한 동의&lt;BR&gt;필요한 어휘를 생성, 교환,…&lt;BR&gt;비슷한 사물을 공통적으로 인식&lt;BR&gt;객체 지향 프로그램에 따르면&lt;BR&gt;객체의 공통적인 행위와 속성을 기술한 구성자&lt;BR&gt;데이터와 메소드(함수)를 포함하는 자료형&lt;BR&gt;&lt;FONT color=#d41a01&gt;메모리상에 있는 데이터와 메소드의 집합으로 그것을 구성하는것들의 묶음은 클래스&lt;BR&gt;재사용성을 기초로 함.&lt;BR&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;
&lt;H3&gt;객체란?&lt;/H3&gt;
&lt;P&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://web20korea.com/attach/1/1090069475.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;317&quot; width=&quot;450&quot; /&gt;&lt;/div&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;클래스 vs. 구조체&lt;/H3&gt;
&lt;P&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://web20korea.com/attach/1/1161731223.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;181&quot; width=&quot;450&quot; /&gt;&lt;/div&gt;&lt;/P&gt;&lt;BR&gt;
&lt;H3&gt;추상화&lt;/H3&gt;
&lt;P&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://web20korea.com/attach/1/1122223488.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;328&quot; width=&quot;450&quot; /&gt;&lt;/div&gt;&lt;/P&gt;&lt;BR&gt;
&lt;P&gt;&lt;BR&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;캡슐화&lt;/H3&gt;
&lt;P&gt;데이터(멤버)와 메소드를 결합&lt;BR&gt;접근 권한의 통제&lt;BR&gt;캡슐화&lt;BR&gt;객체 데이터&lt;BR&gt;클래스 데이터(멤버) 사용하기&lt;BR&gt;클래스 메소드 사용하기&lt;/P&gt;&lt;BR&gt;
&lt;br /&gt;
&lt;H3&gt;
&lt;P&gt;데이터(멤버)와 메소드를 결합&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://web20korea.com/attach/1/1327898876.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;289&quot; width=&quot;450&quot; /&gt;&lt;/div&gt;&lt;/P&gt;&lt;/H3&gt;&lt;BR&gt;
&lt;H3&gt;접근 권한의 통제&lt;/H3&gt;
&lt;P&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://web20korea.com/attach/1/1342054709.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;270&quot; width=&quot;450&quot; /&gt;&lt;/div&gt;&lt;/P&gt;&lt;BR&gt;
&lt;P&gt;&lt;BR&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;캡슐화&lt;/H3&gt;
&lt;P&gt;&lt;STRONG&gt;가릴것은 가리고 보여줄 것은 보여준다&lt;BR&gt;&lt;/STRONG&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://web20korea.com/attach/1/1227415137.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;300&quot; width=&quot;450&quot; /&gt;&lt;/div&gt;&lt;/P&gt;&lt;BR&gt;
&lt;H3&gt;객체 데이터(멤버)&lt;/H3&gt;
&lt;P&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://web20korea.com/attach/1/1096942813.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;269&quot; width=&quot;450&quot; /&gt;&lt;/div&gt;&lt;/P&gt;&lt;BR&gt;
&lt;P&gt;&lt;BR&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;클래스 데이터(멤버) 사용하기&lt;/H3&gt;
&lt;P&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://web20korea.com/attach/1/1104763601.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;304&quot; width=&quot;450&quot; /&gt;&lt;/div&gt;&lt;/P&gt;&lt;BR&gt;
&lt;P&gt;&lt;BR&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;클래스 메소드 사용하기&lt;/H3&gt;
&lt;P&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://web20korea.com/attach/1/1264914500.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;305&quot; width=&quot;450&quot; /&gt;&lt;/div&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;</summary>
  </entry>
  <entry>
    <title type="html">09 C# 클래스(Class) 1 객체와 class</title>
    <link rel="alternate" type="text/html" href="http://web20korea.com/284" />
    <link rel="replies" type="application/atom+xml" href="http://web20korea.com/atom/response/284" thr:count="0"/>
    <category term="C#.NET" />
    <category term=".net" />
    <category term="C#" />
    <author>
      <name>(web20korea)</name>
    </author>
    <id>http://web20korea.com/284</id>
    <updated>2010-01-21T09:05:20+09:00</updated>
    <published>2010-01-21T08:51:33+09:00</published>
    <summary type="html">&lt;H3&gt;객체(object) 와 클래스(class)&lt;/H3&gt;
&lt;P&gt;객체(object) : 실제로 존재하는 구체적인 대상&lt;BR /&gt;&lt;BR /&gt;클래스(class) : 유사한 특성(attribute)과 행위(behavior)를 갖는 객체를 표현(정의)한 것&lt;BR /&gt;세탁기 class&lt;BR /&gt;특성 : 브랜드명, 모델명, 일련번호, 용량, 색상 등&lt;BR /&gt;행위 : &#039;옷 넣기&#039;, &#039;물 투입&#039;, &#039;세탁 &#039;, &#039; 행굼&#039; , &#039;탈수&#039;, &#039;완료 신호&#039; 등&lt;BR /&gt;&lt;BR /&gt;OOP(object oriented programming) 객체(object)&lt;BR /&gt;Class 를 기반으로 생성된 실체&lt;/P&gt;
&lt;H3&gt;객체의 3가지 특징&lt;/H3&gt;
&lt;P&gt;&lt;STRONG&gt;특성(attribute)&lt;BR /&gt;&lt;/STRONG&gt;해당 객체에 저장되어 있는 정보&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;행위(behavior)&lt;BR /&gt;&lt;/STRONG&gt;해당 객체가 행동하거나 반응하는 방법을 결정&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;정체성(identiry)&lt;BR /&gt;&lt;/STRONG&gt;해당 객체를 다른 객체와 구별짓게 하는 식별값&lt;/P&gt;
&lt;H3&gt;객체지향의 기본원리&lt;/H3&gt;
&lt;P&gt;&lt;STRONG&gt;추상화(abstraction)&lt;/STRONG&gt;&lt;BR /&gt;필요한 만큼의 특성과 행위를 추출해 내는 것.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;캡슐화(encapsulation)&lt;/STRONG&gt;&lt;BR /&gt;구현방법에 대한 자세한 사항을 내부에 감추고 외부에 노출된 인터페이스(interface)를 통해서만 사용할 수 있게하는 개념&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;상속(inheritance)&lt;/STRONG&gt;&lt;BR /&gt;하나의 객체는 자신의 class에 속해 있는 특성과 행위를 모두 물려받는다.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;다형성(polymorphism)&lt;/STRONG&gt;&lt;BR /&gt;다른 class인데 같은 이름의 행위를 가지게 되는 경우&lt;/P&gt;
&lt;H3&gt;class&lt;/H3&gt;
&lt;P&gt;사용자가 정의하는 하나의 data type&lt;/P&gt;
&lt;P&gt;생성자(constructor), 소멸자(destructor), 상수(constant), 필드(field), 메소드(method), 속성(property), 인덱서(indexor), 연산자(operator) 등을 멤버로 포함&lt;/P&gt;
&lt;P&gt;class 의 정의&lt;BR /&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
class classname{
&amp;nbsp;// class의 member 정의
}
&lt;/textarea&gt;&lt;/P&gt;
&lt;H3&gt;class의 특성&lt;/H3&gt;
&lt;P&gt;class의 특성은 member field와 property로 구현&lt;BR /&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
class MyClass{
&amp;nbsp;private int myField; &amp;nbsp;&amp;nbsp; // 멤버필드&lt;/P&gt;
&amp;nbsp;public int MyProperty{&amp;nbsp; // 멤버속성
&amp;nbsp; set{
&amp;nbsp; &amp;nbsp;// 속성 설정 구현코드
&amp;nbsp; }
&amp;nbsp; get{
&amp;nbsp; &amp;nbsp;// 속성값 반환 구현코드
&amp;nbsp; }
&amp;nbsp;}
}
&lt;/textarea&gt;&lt;/P&gt;
&lt;H3&gt;class의 행위&lt;/H3&gt;
&lt;P&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
class의 행위는 member method로 구현
&amp;nbsp;class MyClass{
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public void MyMethod(){ // return 값이 없는 멤버 메소드
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // 메소드의 구현
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public bool MyMethod2(){ // return 값이 boolean type인 멤버 메소드
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // 메소드의 구현
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return true;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;/textarea&gt;&lt;/P&gt;
&lt;H3&gt;member field&lt;/H3&gt;
&lt;P&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
class Book{
&amp;nbsp;string&amp;nbsp; title; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;// 일반 변수를 선언하듯 사용
&amp;nbsp;string&amp;nbsp; isbncode;
&amp;nbsp;int &amp;nbsp; &amp;nbsp;&amp;nbsp; part = 0; &amp;nbsp; &amp;nbsp; &amp;nbsp;// 초기값을 설정할 수 있음
&amp;nbsp;string[] &amp;nbsp;&amp;nbsp; authors; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; // 배열의 사용&lt;/P&gt;
&amp;nbsp;const int COMPUTER = 0; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; // 상수를 정의하여 사용
&amp;nbsp;const int BUSINESS = 1;
&amp;nbsp;const int NOVEL = 2;
&amp;nbsp;static int objCount; // static member field
}
&lt;/textarea&gt;&lt;/P&gt;
&lt;H3&gt;상수와 static field&lt;/H3&gt;
&lt;P&gt;상수 : 값이 변할 수 없는, 항상 같은 값&lt;BR /&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
&amp;nbsp;const int MaxLength = 25; &amp;nbsp; &amp;nbsp;&amp;nbsp; // integer 상수
&amp;nbsp;public const string appName = &quot;My C# App“; // string 상수
&lt;/textarea&gt;&lt;BR /&gt;&lt;BR /&gt;static field&lt;BR /&gt;static method 처럼 객체의 member가 아닌 class의 member&lt;BR /&gt;static constructor를 통해 초기화 가능&lt;BR /&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
&amp;nbsp;public static int objCount = 100;&amp;nbsp; // 처음 한번만 초기화 된다.
&amp;nbsp;public Customer(){
&amp;nbsp; objCount++;&amp;nbsp; // 객체 생성시마다 증가
&amp;nbsp;}
&amp;nbsp;// ……
&amp;nbsp;Console.WriteLine(Customer.objCount); // static member field 접근
&lt;/textarea&gt;&lt;/P&gt;</summary>
  </entry>
  <entry>
    <title type="html">06 C# 형변환(Data Type Conversion)</title>
    <link rel="alternate" type="text/html" href="http://web20korea.com/283" />
    <link rel="replies" type="application/atom+xml" href="http://web20korea.com/atom/response/283" thr:count="0"/>
    <category term="C#.NET" />
    <category term=".net" />
    <category term="C#" />
    <author>
      <name>(web20korea)</name>
    </author>
    <id>http://web20korea.com/283</id>
    <updated>2010-01-21T08:48:20+09:00</updated>
    <published>2010-01-21T08:48:20+09:00</published>
    <summary type="html">&lt;H3&gt;형변환의 문제&lt;/H3&gt;
&lt;P&gt;데이터 형식 끼리 변환해야하는 필요가 발생&lt;BR&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
byte a = 20;
byte b = 100;
byte result = a + b;&amp;nbsp; // 형변환 error 출력, byte 값을 연산하면 암시적으로
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // int형으로 변환되기 때문에 int 형보다 작은 byte 변수에
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // 넣을 수 없다.
&lt;/textarea&gt;&lt;BR&gt;하나의 data type에서 다른 data type 으로 변환을 할 때, 컴파일러는 데이터 손실이 발생할 경우 명시적 형변환을 요구하고, 손실이 발생하지 않는다면 묵시적으로 형변환을 한다.&lt;BR&gt;묵시적 형변환 : 작은 data type에서 큰 data type으로 변환 시&lt;BR&gt;명시적 형변환 : 큰 data type에서 작은 data type으로 변환 시&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;H3&gt;묵시적 형변환&lt;/H3&gt;
&lt;P&gt;데이터의 형식변환에서 데이터 값이 변하지 않는다는 보장이 있을 때 자동으로 형변환이 이루어 지는 것&lt;BR&gt;메모리상의 크기가 적은 data type에서 메모리상의 크기의 큰 data type으로의 변환&lt;BR&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
byte a = 20;
byte b = 30;
int result = a + b;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // int data type은 byte type 보다 크기가 크기 때문에
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // 묵시적형변환이 가능하다.
&lt;/textarea&gt;&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;H3&gt;명시적 형변환&lt;/H3&gt;
&lt;P&gt;묵시적으로 형변환이 될 수 없는 예&lt;BR&gt;int -&amp;gt; short&lt;BR&gt;int -&amp;gt; uint&lt;BR&gt;long -&amp;gt; int&lt;BR&gt;float -&amp;gt; int&lt;BR&gt;숫자 데이터 형 -&amp;gt; char&lt;BR&gt;decimal -&amp;gt; 다른 숫자 데이터 형&lt;BR&gt;......&lt;BR&gt;명시적 형변환&lt;BR&gt;형변환의 위험성을 개발자가 인지하고 있다는 것을 컴파일러에게 알려주어 강제적인 형변환이 가능하도록 하는 것&lt;BR&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
byte a = 20;
byte b = 100;
byte result = (byte)(a + b);
&lt;/textarea&gt;&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;H3&gt;명시적 형변환의 위험성&lt;/H3&gt;
&lt;P&gt;명시적 형변환의 위험성&lt;BR&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
long value = 3210000000;
int result = (int)value;&amp;nbsp; // 여기서 result 값을 출력해보면 –1084967296라는 값이
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; // 나오게 된다. value 에서 지정한 값이 int 에서 허용하는
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; // 값을 초과했기 때문에 이런 결과가 나온다.
&lt;/textarea&gt;&lt;BR&gt;위의 예제는 error를 발생하지 않지만 결과는 원하던 결과와 다르게 나온다.&lt;BR&gt;명시적 형변환 자체가 위험을 감수하고 변환하는 것이기 때문에 개발자는 이런 엉뚱한 상황이 발생할 수 있다는 것을 인지하고 있어야 한다.&lt;/P&gt;
&lt;P&gt;이런 상황이 올 수 있는 경우 checked 연산자를 사용하여 stack overflow를 검사할 수 있다.&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;H3&gt;checked 연산자의 사용&lt;/H3&gt;
&lt;P&gt;명시적 형변환시 연산도중 발생할 수 있는 stack overflow를 검사하는 연산자&lt;BR&gt;이를 통해 현재의 형변환이 안전한지를 검사할 수 있다.&lt;BR&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
long val = 3210000000;
int i;
checked{ // checked 연산자를 이용한 stack overflow 검사
&amp;nbsp;i = (int)val;
}
&lt;/textarea&gt;&lt;BR&gt;&lt;U&gt;처리되지 않은 &#039;System.OverflowException&#039; 형식의 예외가 ConApp5.exe에서 발생했습니다.&lt;BR&gt;추가 정보: 산술 연산으로 인해 오버플로가 발생했습니다.&lt;BR&gt;&lt;/U&gt;checked 연산자를 통해 실행시 발생하는 문제를 미리 점검할 수 있다.&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;H3&gt;Boxing&lt;/H3&gt;
&lt;P&gt;value type 을 reference type 으로 묵시적으로 변환&lt;BR&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
//Boxing
int i = 123;
object o = i; &amp;nbsp; // boxing
Console.WriteLine(o.GetType());
string str = 123.ToString(); &amp;nbsp;&amp;nbsp; // boxing &quot;123&quot; 문자열 리턴
Console.WriteLine(str);
&lt;/textarea&gt;&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;H3&gt;Unboxing&lt;/H3&gt;
&lt;P&gt;reference type 을 value type 으로 명시적으로 변환&lt;BR&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
// Unboxing
int j = 234;
object r = j; &amp;nbsp; &amp;nbsp; &amp;nbsp; // boxing
int k = (int)r; &amp;nbsp; &amp;nbsp; // unboxing
Console.WriteLine(r.GetType());
Console.WriteLine(k);

// 호환되지 않는 타입으로 unboxing 시도시 InvalidCastException 예외 발생
int l = 345;
object s = l; &amp;nbsp; &amp;nbsp; &amp;nbsp; // boxing
float m = (float)s; // unboxing Exception
&lt;/textarea&gt;&lt;/P&gt;</summary>
  </entry>
  <entry>
    <title type="html">05 C# 열거형M_구조체_연산자</title>
    <link rel="alternate" type="text/html" href="http://web20korea.com/282" />
    <link rel="replies" type="application/atom+xml" href="http://web20korea.com/atom/response/282" thr:count="0"/>
    <category term="C#.NET" />
    <category term=".net" />
    <category term="C#" />
    <author>
      <name>(web20korea)</name>
    </author>
    <id>http://web20korea.com/282</id>
    <updated>2010-01-21T09:06:32+09:00</updated>
    <published>2010-01-20T15:20:12+09:00</published>
    <summary type="html">&lt;H3&gt;열거형(enumeration)&lt;/H3&gt;
&lt;P&gt;열거자(enumerator)란 이름이 부여된 일련의 정수 상수로 구성되는 데이터 타입&lt;BR /&gt;열거자의 값은 기본적으로 0으로 시작하여 1씩 증가&lt;BR /&gt;값을 바꿀 수 있는데, 한 값을 바꾸면 다음 열거자부터는 바뀐값에서 1씩 증가&lt;BR /&gt;default type 은 int 이며 char를 제외한 정수형 타입(byte, sbyte, short, int, uint, long, ulong)의 지정이 가능&lt;/P&gt;
&lt;H3&gt;열거형 정의 및 사용&lt;/H3&gt;
&lt;P&gt;열거형 정의&lt;BR /&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
enum Weekday{Mon, Tue, Wed, Thu, Fri, Sat, Sun};
// Mon=0, Tue=1, Wed=2, Thu=3, Fri=4, Sat=5, Sun=6
enum Weekday{Mon = 1, tue, Wed = 4, Thu, Fri = 7, Sat, Sun};
// Mon=1, Tue=2, Wed=4, Thu=5, Fri=7, Sat=8, Sun=9
&lt;/textarea&gt;&lt;BR /&gt;열거형 사용&lt;BR /&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
WeekDay weekday = WeekDay.Fri;
// 또는
int weekday = (int)WeekDay.Fri;
&lt;/textarea&gt;&lt;/P&gt;
&lt;H3&gt;구조체&lt;/H3&gt;
&lt;P&gt;대문자로 표시&lt;BR /&gt;value type&lt;BR /&gt;사용자 정의 데이터 타입을 정의하는데 사용&lt;BR /&gt;일반적으로 여러개의 필드를 포함하는 복합 데이터 타입(composite data type)을 정의하기 위해 사용&lt;BR /&gt;공개필드 멤버로만 포함하는 것이 일반적&lt;BR /&gt;생성자를 가질 수 있다.&lt;BR /&gt;이때 default 생성자는 재정의할 수 없으며, 반드시 파라메터가 있는 생성자이어야 한다.&lt;/P&gt;
&lt;H3&gt;구조체 정의 및 사용&lt;/H3&gt;
&lt;P&gt;구조체 정의&lt;BR /&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
struct POINT {
&amp;nbsp; &amp;nbsp; public int x;
&amp;nbsp; &amp;nbsp; public int y;
}
&lt;/textarea&gt;&lt;BR /&gt;구조체 사용&lt;BR /&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
&amp;nbsp;POINT pt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; pt.x = 10;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; pt.y = 20;
&lt;/textarea&gt;&lt;/P&gt;
&lt;H3&gt;구조체 생성자 사용&lt;/H3&gt;
&lt;P&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
&amp;nbsp;struct POINT
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public int x;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public int y;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public POINT(int x, int y)
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {// 구조체에서 생성자 사용시 파라메터가 있어야 한다.
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.x = x;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; this.y = y;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&lt;/textarea&gt;&lt;BR /&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
// 구조체의 생성자 호출시 new 키워드를 사용한다.
POINT pt = new POINT(20, 30);
Console.WriteLine(&quot;POINT pt.x = {0}, pt.y = {1}&quot;, pt.x, pt.y);
&lt;/textarea&gt;&lt;/P&gt;</summary>
  </entry>
  <entry>
    <title type="html">04 C# 변수_배열</title>
    <link rel="alternate" type="text/html" href="http://web20korea.com/281" />
    <link rel="replies" type="application/atom+xml" href="http://web20korea.com/atom/response/281" thr:count="0"/>
    <category term="C#.NET" />
    <category term=".net" />
    <category term="C#" />
    <author>
      <name>(web20korea)</name>
    </author>
    <id>http://web20korea.com/281</id>
    <updated>2010-01-21T09:10:24+09:00</updated>
    <published>2010-01-20T15:17:28+09:00</published>
    <summary type="html">&lt;H3&gt;변수의 종류&lt;/H3&gt;
&lt;STRONG&gt;멤버 필드(member field)&lt;BR /&gt;&lt;/STRONG&gt;Class 내부에 선언된 변수&lt;BR /&gt;&lt;STRONG&gt;지역 변수(local variable)&lt;BR /&gt;&lt;/STRONG&gt;Method 내부에 선언된 변수&lt;BR /&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
class MyVariable{
&amp;nbsp; &amp;nbsp; private string name; // 멤버 필드 name
&amp;nbsp; &amp;nbsp; public void SetName(string name, int age){ // 지역변수 name, age
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; string cityName; // 지역변수 cityName
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ……
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for(int i = 0; i &amp;lt; 7; i++){ &amp;nbsp;&amp;nbsp; // 지역변수 i
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; }
}
&lt;/textarea&gt;
&lt;H3&gt;변수 이름&lt;/H3&gt;
&lt;STRONG&gt;변수 이름으로 사용할 수 있는 문자.&lt;BR /&gt;&lt;/STRONG&gt;문자, 언더 바(_), 숫자&lt;BR /&gt;&lt;STRONG&gt;숫자로 시작할 수 없다.&lt;BR /&gt;공백이 포함되어서는 안된다.&lt;BR /&gt;예약 어는 사용할 수 없다.&lt;BR /&gt;&lt;/STRONG&gt;class, struct, abstract, base, bool, default, if, finally ......
&lt;H3&gt;변수의 범위&lt;/H3&gt;
&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
public void SetProcess(){
&amp;nbsp; &amp;nbsp; for(int i = 0; i &amp;lt; 10 ; i++){ &amp;nbsp;&amp;nbsp; // i 의 영역은 for문 안에서만 유효
&amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; for(int i = 0; i &amp;lt; 10; i++){ &amp;nbsp; &amp;nbsp; // 유효 : 첫번째 for문이 종료되므로 첫번째 i 역시 소멸
&amp;nbsp; &amp;nbsp; }
}
&lt;/textarea&gt;&lt;BR /&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
public boolean SetProcess(){
&amp;nbsp; &amp;nbsp; int a = 10;
&amp;nbsp; &amp;nbsp; for(int i = 0; i &amp;lt; 10 ; i++){
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int a = 20; &amp;nbsp;&amp;nbsp; // 위쪽 변수 a의 영역은 for문 역시 포함 되므로 같은 이름의 a 변수를 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; // 또다시 선언할 수 없다.
&amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; return true;
}
&lt;/textarea&gt;
&lt;H3&gt;배열&lt;/H3&gt;
같은 데이터 타입의 값들을 포함할 수 있는 데이터 구조&lt;BR /&gt;Value type 이외에 object, interface 등 C#의 고유타입들이 들어올 수 있다.&lt;BR /&gt;초기화를 하지 않을 경우 디폴트값으로 초기화&lt;BR /&gt;선언시 배열명 앞에 [] 가 와야하며, new 를 통해 초기화&lt;BR /&gt;배열을 다른 배열로 복사시 Clone() 를 사용&lt;BR /&gt;동적인 배열을 생성해야 할 경우 ArrayList를 사용
&lt;H3&gt;배열 선언 및 초기화&lt;/H3&gt;
&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
// 선언
int[] arrDay;
arrDay = new int[12]; // new를 통해 배열 생성, 0~11 까지의 요소값을 가짐// 선언과 동시에 생성
int[] arrDay = new int[12];
arrDay[0] = 31; // 개별적인 초기화
arrDay[1] = 28;
… // 선언, 생성, 초기화를 한꺼번에
int[] arrDay = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
&lt;/textarea&gt; 
&lt;H3&gt;다중 차원 배열&lt;/H3&gt;
Rectangle 배열&lt;BR /&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
int[,] grid = new int[3, 4]; //세로 3, 가로 4의 배열 생성//다중차원 배열의 길이 얻기
int id1 = 0, id2 = 0, arrLength;
int[,] grid = new int[3, 4];
id1 = grid.GetLength(0); //배열생성시 지정한 첫번째 인덱스 리턴 == 3
id2 = grid.GetLength(1); //배열생성시 지정한 두번째 인덱스 리턴 == 4
arrLength = grid.Length; // id1 * id2 == 12
&lt;/textarea&gt; 
&lt;H3&gt;Rectangle 배열&lt;/H3&gt;
&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
// rectangular array
int [] a1 = new int[] { 1, 2, 3 };
int [,] a2 = new int[,] { {1, 2, 3}, {4,5,6} };
int [,,] a3 = new int[10,20,30];
// GetLength
Console.WriteLine(&quot;a1.GetLength(0) = {0}&quot;, a1.GetLength(0));
Console.WriteLine(&quot;-----------------------------&quot;);
Console.WriteLine(&quot;a2.GetLength(0) = {0}&quot;, a2.GetLength(0));
Console.WriteLine(&quot;a2.GetLength(1) = {0}&quot;, a2.GetLength(1));
Console.WriteLine(&quot;-----------------------------&quot;);
Console.WriteLine(&quot;a3.GetLength(0) = {0}&quot;, a3.GetLength(0));
Console.WriteLine(&quot;a3.GetLength(1) = {0}&quot;, a3.GetLength(1));
Console.WriteLine(&quot;a3.GetLength(2) = {0}&quot;, a3.GetLength(2));
&lt;/textarea&gt;
&lt;H3&gt;Jagged 배열&lt;/H3&gt;
&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
// jagged array
int[][] j2 = new int[3][];
j2[0] = new int[] { 1, 2, 3};
j2[1] = new int[] { 1, 2, 3, 4, 5};
j2[2] = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9};
// GetLength
Console.WriteLine(&quot;-----------------------------&quot;);
Console.WriteLine(&quot;j2.GetLength(0) = {0}&quot;, j2.GetLength(0));
//Console.WriteLine(&quot;j2.GetLength(1) = {0}&quot;, j2.GetLength(1));
Console.WriteLine(&quot;-----------------------------&quot;);
Console.WriteLine(&quot;j2[0].GetLength(0) = {0}&quot;, j2[0].GetLength(0));
Console.WriteLine(&quot;j2[1].GetLength(0) = {0}&quot;, j2[1].GetLength(0));
Console.WriteLine(&quot;j2[2].GetLength(0) = {0}&quot;, j2[2].GetLength(0));
Console.WriteLine(&quot;-----------------------------&quot;);
&lt;/textarea&gt;
&lt;H3&gt;배열 사용&lt;/H3&gt;
배열 값 얻기&lt;BR /&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
int[] arrDay = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; for(int i=0;i&amp;lt; arrDay.Length;i++){&amp;nbsp; //Length 속성은 배열의 크기를 리턴(12)
&amp;nbsp; &amp;nbsp; Console.WriteLine(i + “월의 마지막 날은 &quot; + arrDay[i] + &quot; 일 입니다.&quot;);
}
&lt;/textarea&gt;&lt;BR /&gt;배열 복사&lt;BR /&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
int[] arrDay = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int[] newDay = new int[12]; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; // 새 배열 생성
&amp;nbsp;newDay = (int[]) arrDay.Clone(); 
&amp;nbsp;// 원본배열의 Clone()메소드를 통해 복제해야 한다. 
&lt;/textarea&gt;</summary>
  </entry>
  <entry>
    <title type="html">03 C# Data Type과 변수_상수_문자열</title>
    <link rel="alternate" type="text/html" href="http://web20korea.com/280" />
    <link rel="replies" type="application/atom+xml" href="http://web20korea.com/atom/response/280" thr:count="0"/>
    <category term="C#.NET" />
    <category term=".net" />
    <category term="C#" />
    <author>
      <name>(web20korea)</name>
    </author>
    <id>http://web20korea.com/280</id>
    <updated>2010-01-20T16:42:04+09:00</updated>
    <published>2010-01-20T15:13:39+09:00</published>
    <summary type="html">&lt;H3&gt;CTS(Common Type System)&lt;/H3&gt;
&lt;P&gt;CTS는 서로 다른 언어에서 상호작용을 하기위한 표준 데이터 형식을 정의한 것&lt;BR&gt;서로 다른 Language로 제작된 class의 인스턴스를 만들거나 상속받을 때는 해당 class에서 사용하는 data type을 알아야한다.&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://web20korea.com/attach/1/1136504575.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;142&quot; width=&quot;319&quot; /&gt;&lt;/div&gt;&lt;/P&gt;
&lt;H3&gt;Value Type 과 Reference Type&lt;/H3&gt;
&lt;P&gt;&lt;STRONG&gt;Value Type&lt;BR&gt;&lt;/STRONG&gt;메모리 상의 스택(stack)에 저장됨&lt;BR&gt;Stack : int(4byte 크기) 형식 처럼 고정된 길이를 갖는 데이터를 저장&lt;BR&gt;변수 선언시 실제 값을 내부에 가짐&lt;BR&gt;변수 대입시 같은 데이터의 복사본을 메모리에 만듬(서로 영향을 미치지 않는다.)&lt;BR&gt;정수형, 부동소수점형, decimal 형, boolean 형, 구조체(struct)&lt;BR&gt;&lt;STRONG&gt;Reference Type&lt;BR&gt;&lt;/STRONG&gt;메모리 상의 힙(heap)에 저장됨&lt;BR&gt;Heap : 동적인 크기를 가진 데이터를 저장하는 공간&lt;BR&gt;변수 선언시 변수는 실제 값이 저장된 위치에대한 주소를 가짐&lt;BR&gt;변수 대입시 주소값을 복사하게 됨(서로 영향을 미칠 수 있다.)&lt;BR&gt;class, interface, 배열(array), 위임(delegate)&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;H3&gt;상수와 읽기 전용 변수&lt;/H3&gt;
&lt;P&gt;&lt;STRONG&gt;상수(constant)&lt;BR&gt;&lt;/STRONG&gt;변하지 않고 항상 같은 값, 변경불가, 오직 읽기 전용&lt;BR&gt;const double PI = 3.14;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;읽기 전용 변수(read-only variable)&lt;BR&gt;&lt;/STRONG&gt;readonly 키워드&lt;BR&gt;class 의 멤버필드(변수)에만 사용가능,&lt;BR&gt;필드초기화 또는 생성자(constructor)에서 초기화한 후에 읽기 전용으로 사용&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;H3&gt;Reference Type&lt;/H3&gt;
&lt;P&gt;객체(object)의 레퍼런스(reference) 정보를 저장&lt;BR&gt;객체 또는 배열에 할당된 메모리 위치 정보가 저장됨&lt;/P&gt;
&lt;P&gt;class type&lt;BR&gt;interface type&lt;BR&gt;array type&lt;BR&gt;delegate type&lt;/P&gt;
&lt;P&gt;OOP 및 Delegate, Event 강좌에서 상세 설명&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;H3&gt;문자열(string)&lt;/H3&gt;
&lt;P&gt;string 은 class 이다.&lt;BR&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
string str = &quot;hello world!&quot;; - 주로 자료형처럼 사용
// 위의 문장은 아래와 동일한 의미
string str = new string(&quot;hello world!&quot;); -주로 클래스 인스턴스생성시 사용
// 하지만 이 문장은 에러를 발생, string 클래스의 인스턴스는 new를 사용하지 않음.
&lt;/textarea&gt;&lt;BR&gt;string type은 값이 변동될 때 내부적으로 다르게 처리&lt;BR&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
string str = &quot;hello world!&quot;;
str = &quot;another world!&quot;;
// string class 의 인스턴스는 읽기 전용으로 변경이 불가능하다.
// 위의 코드는 새로운 문자열을 저장할 공간을 만든 후, 거기에 문자열을 넣고
// 해당 주소를 str 이라는 레퍼런스 변수에 저장하는 과정이 된다.
// 이러한 과정은 문자열과 문자열을 더하거나 잘라내는 과정에서도 발생
&lt;/textarea&gt;&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;H3&gt;문자열(string)&lt;/H3&gt;
&lt;P&gt;class 이지만 value type 처럼 값 대입시 실제 값이 대입됨&lt;BR&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
string str1 = “Hello&quot;;
string str2;
str2 = str;
str2 = &quot; world!&quot;;
Console.WriteLine(str1 + str2);
// string 의 처리는 value type 처럼 실제 값을 복사한다.
&lt;/textarea&gt;&lt;/P&gt;</summary>
  </entry>
  <entry>
    <title type="html">02 C# Language 기본구조</title>
    <link rel="alternate" type="text/html" href="http://web20korea.com/279" />
    <link rel="replies" type="application/atom+xml" href="http://web20korea.com/atom/response/279" thr:count="0"/>
    <category term="C#.NET" />
    <category term=".net" />
    <category term="C#" />
    <author>
      <name>(web20korea)</name>
    </author>
    <id>http://web20korea.com/279</id>
    <updated>2010-01-21T09:11:23+09:00</updated>
    <published>2010-01-20T15:10:42+09:00</published>
    <summary type="html">&lt;H3&gt;C# Language 기초&lt;/H3&gt;
&lt;STRONG&gt;C, C++, Java 처럼 세미콜론(;)으로 문장 구분&lt;BR /&gt;&lt;/STRONG&gt;a +=1 ; b += 1;&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt;하나의 처리 단위를 이루는 문장들은 중괄호 { } 내부에 들어 있어야 한다.&lt;BR /&gt;&lt;/STRONG&gt;for, if&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt;모든 코드는 class 안에 코딩&lt;/STRONG&gt;&lt;BR /&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
class MyClass{
int a = 0;
public static void Main(){} 
}
&lt;/textarea&gt;
외부에서 참조할 class 는 using 키워드를 사용&lt;BR /&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
using System;
&lt;/textarea&gt;
&lt;H3&gt;C# Language 기본 구조&lt;/H3&gt;
&lt;STRONG&gt;Hello World Application&lt;/STRONG&gt;&lt;BR /&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
using System;
&amp;nbsp;
class HelloClass
{
&amp;nbsp;public static void Main()
&amp;nbsp;{
&amp;nbsp; Console.WriteLine(&quot;Hello World~!&quot;);
&amp;nbsp; System.Threading.Thread.Sleep(10000);
&amp;nbsp;}
}
&lt;/textarea&gt;
&lt;H3&gt;Namespace&lt;/H3&gt;
영역을 구분하는 데 사용&lt;BR /&gt;.NET Framework에서 제공하는 기본적인 class 들은 각각의 특성에 맞는 이름을 가진 namespace로 나뉨&lt;BR /&gt;namespace 는 종속관계가 없다.&lt;BR /&gt;System&amp;nbsp; 이라는 namespace 와 System.Threading 이라는 namespace는 서로 관계가 없다.&lt;BR /&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
using System; // 필요한 class 가 들어있는 namespace는 using 키워드를 사용
…
Console.WriteLine(&quot;Hello Class&quot;);
Thread.Sleep(10000); // System이라는 namespace에 Thread라는 Class없음
Threading.Thread.Sleep(10000); // Threading 이라는 namespace가 없음
System.Threading.Thread.Sleep(10000); // 정상작동
&lt;/textarea&gt;
&lt;H3&gt;Class&lt;/H3&gt;
&lt;STRONG&gt;Class&lt;/STRONG&gt;&lt;BR /&gt;생성자(constructor), 소멸자(destructor), 상수(constant), 필드(field), 메소드(method), 속성(property), 인덱서(indexor), 연산자(operator) 등을 멤버로 포함&lt;BR /&gt;Class의 특성은 field와 property로 표현&lt;BR /&gt;Class의 행위(behavior)는 method로 표현&lt;BR /&gt;access modifier를 통해 information hiding 구현&lt;BR /&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
class HelloClass
{
&amp;nbsp; &amp;nbsp; ……
}
&lt;/textarea&gt;
&lt;H3&gt;Main()&lt;/H3&gt;
Application 의 진입점인 Main method&lt;BR /&gt;&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
public static void Main()
{
&amp;nbsp; &amp;nbsp; ……
}
&lt;/textarea&gt;&lt;BR /&gt;public 은 접근제한자로 class 외부에서도 접근이 가능&lt;BR /&gt;static 은 객체의 인스턴스를 통하지 않고 class 차원에서 Main method를 호출할 수 있다는 것&lt;BR /&gt;void 는 리턴값이 없다는 의미
&lt;H3&gt;Return value&lt;/H3&gt;
&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
using System;
class HelloClass
{
&amp;nbsp;static int Process()
&amp;nbsp;{
&amp;nbsp; int a = 4, b = 3;
&amp;nbsp; return a * b;
&amp;nbsp;}
&amp;nbsp;public static void Main(string[] args)
&amp;nbsp;{
&amp;nbsp; Console.WriteLine(&quot;Hello World!&quot;);
&amp;nbsp; Console.WriteLine(&quot;return value = {0}&quot;, Process());
&amp;nbsp;&amp;nbsp; System.Threading Thread.Sleep(10000);
&amp;nbsp;}
}
&lt;/textarea&gt;
&lt;H3&gt;Parameter&lt;/H3&gt;
&lt;textarea name=&quot;CodeHighLighterCode&quot; class=&quot;c#&quot; cols=&quot;60&quot; rows=&quot;10&quot; readonly=&quot;readonly&quot;&gt;
using System;
class HelloClass
{
&amp;nbsp;static int Process(int a, int b)
&amp;nbsp;{
&amp;nbsp; return a * b;
&amp;nbsp;}
&amp;nbsp;public static void Main(string[] args)
&amp;nbsp;{
&amp;nbsp; Console.WriteLine(&quot;Hello World!&quot;);
&amp;nbsp; Console.WriteLine(&quot;return value = {0}&quot;, Process(3, 4));
&amp;nbsp;&amp;nbsp; System.Threading Thread.Sleep(10000);
&amp;nbsp;}
}
&lt;/textarea&gt;</summary>
  </entry>
  <entry>
    <title type="html">01 .NET 과 C# Language</title>
    <link rel="alternate" type="text/html" href="http://web20korea.com/278" />
    <link rel="replies" type="application/atom+xml" href="http://web20korea.com/atom/response/278" thr:count="0"/>
    <category term="C#.NET" />
    <category term=".net" />
    <category term="C#" />
    <author>
      <name>(web20korea)</name>
    </author>
    <id>http://web20korea.com/278</id>
    <updated>2010-01-20T16:23:01+09:00</updated>
    <published>2010-01-20T14:56:17+09:00</published>
    <summary type="html">&lt;H3&gt;프로그래밍 방법&lt;/H3&gt;
&lt;P&gt;&lt;STRONG&gt;Win32 프로그래밍&lt;BR&gt;&lt;/STRONG&gt;&amp;nbsp;주로 C로 제작함. 메모리관리 수동적으로 해야함. 절차적프로그램으로 제약을 줌&lt;BR&gt;&lt;STRONG&gt;C++/MFC 프로그래밍&lt;BR&gt;&lt;/STRONG&gt;C언어보다 월등히 좋아졌지만, 여전히 메모리관리 수동으로 해야함. 복잡한 포인터연산&lt;BR&gt;&lt;STRONG&gt;VB 프로그래밍&lt;BR&gt;&lt;/STRONG&gt;간단하게,쉽게,빠르게 개발해보자는 컨셉. 객체지향 언어 아님.&lt;BR&gt;&lt;STRONG&gt;Java 프로그래밍&lt;BR&gt;&lt;/STRONG&gt;객체지향, 플렛폼 독립적, 다양한 패키지 지원하기 때문에 파워풀하게 개발 할 수 있다.단점은 실행에 대단히 느림.&lt;BR&gt;&lt;STRONG&gt;COM 프로그래밍&lt;BR&gt;&lt;/STRONG&gt;언어 독립적, 컴파일을 가지고 새로운 프로그램 만들수 없고, 단순히 재사용면에서만 가능&lt;BR&gt;&lt;STRONG&gt;Windows DNA 프로그래밍&lt;BR&gt;&lt;/STRONG&gt;분산어플리케이션에서 사용. 다양한 기술과 언어를 사용해서 개발해야하기 때문에 상당한 시이 걸린다.&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;H3&gt;.NET Framework의 특징&lt;/H3&gt;
&lt;P&gt;코드 재사용성&lt;BR&gt;컴파일에서 사용했던것을 재사용함. 어셈블리에서 사용&lt;BR&gt;언어의 통합&lt;BR&gt;공통적인 실행환경을 제공&lt;BR&gt;기본클래스 라이브러리(base class libraries)&lt;BR&gt;COM의 복잡한 연결고리에서 탈출&lt;BR&gt;단순한 개발 모델&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;H3&gt;.NET Framework&lt;/H3&gt;
&lt;P&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://web20korea.com/attach/1/1070870974.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;283&quot; width=&quot;450&quot; /&gt;&lt;/div&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;.NET의 핵심 요소&lt;/H3&gt;&lt;STRONG&gt;
&lt;H4&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;/H4&gt;
&lt;P&gt;&lt;STRONG&gt;CLR&lt;/STRONG&gt; – 메모리관리, 이진코드라이브러 단순하게 배포, 로드하고 관리하는 일&lt;BR&gt;Common Language Runtime&lt;BR&gt;Base Class Library&lt;BR&gt;&lt;STRONG&gt;CTS&lt;/STRONG&gt; – 런타임이 지원 모든 데이터타입들이 상호 작용하는지 메타 데이터 지원&lt;BR&gt;Common Type System&lt;BR&gt;&lt;STRONG&gt;CLS&lt;/STRONG&gt; – 공통타입들을 묶어서 부분집합으로 분류할때 사용한는 일종의 명세서&lt;BR&gt;Common Language Specification&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;H3&gt;Common Language Runtime&lt;/H3&gt;
&lt;P&gt;&lt;STRONG&gt;Runtime&lt;/STRONG&gt; : 코드 블럭을 실행시키는데 필요한 모든 서비스를 총칭하는 것&lt;BR&gt;&lt;STRONG&gt;.NET Platform Runtime의 특징&lt;BR&gt;&lt;/STRONG&gt;.NET 지원의 모든 언어들 위에 적절히 정의해 둔 하나의 계층을 둔 것.&lt;BR&gt;&lt;STRONG&gt;CLR의 두가지 핵심 개체 &lt;BR&gt;&lt;/STRONG&gt;Mscoree.dll 이라는 런타임 실행 엔진&lt;BR&gt;기본 클래스 라이브러리(base class libraries)&lt;BR&gt;IL파일 명령어식으로 만들어서 제공&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;H3&gt;Common Type System&lt;/H3&gt;
&lt;P&gt;&lt;BR&gt;&lt;STRONG&gt;CTS&lt;/STRONG&gt;는 &lt;STRONG&gt;Runtime&lt;/STRONG&gt;이 지원하는 모든 &lt;STRONG&gt;data type&lt;/STRONG&gt;이 어떻게 서로간에 상호 작용을 하는지, metadata 형식을 어떻게 표현할 것인지를 정해 주는 것 &lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;CTS&lt;/STRONG&gt;는&lt;STRONG&gt; class&lt;/STRONG&gt;나 &lt;STRONG&gt;structure, interface&lt;/STRONG&gt;, 고유 데이터 타입 같은 각각의 타입들을 설명해 주는 공식화된 명세&lt;STRONG&gt;(formal specification&lt;/STRONG&gt;)&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;CTS&lt;/STRONG&gt;의 멤버&lt;BR&gt;CTS class type(클래스 타입)&lt;BR&gt;CTS structure type(구조체 타입)&lt;BR&gt;CTS interface type(인터페이스 타입)&lt;BR&gt;CTS type member(타입 멤버)&lt;BR&gt;CTS enumeration type(열거형 타입)&lt;BR&gt;CTS delegate type(위임 타입)&lt;BR&gt;CTS intrinsic data type(고유 데이터 타입)&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;H3&gt;Common Language Specification&lt;/H3&gt;
&lt;P&gt;&lt;BR&gt;서로 다른 언어로 제작된 코드를 가지고 각각의 컴파일러를 통해 공통된 IL 명령어 집합을 구성해야 하는데,&lt;BR&gt;&amp;nbsp;이때 기준이 되는 규칙이 CLS이다.&lt;BR&gt;예) CLS 규칙 1&lt;BR&gt;CLS 규칙은 단지 정의된 어셈블리에서 밖으로 노출시킨 타입에서만 정의된다. – 외부에 노출되는 것에만 적용된다는 것임&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;H3&gt;Base Class Library&lt;/H3&gt;
&lt;P&gt;&lt;BR&gt;.NET 지원 프로그래밍 언어에서 사용할 수 있도록 기본적으로 제공되는 라이브러리&lt;BR&gt;&lt;BR&gt;File I/O, 그래픽 표현, 외부 하드웨어 장치와의 상호작용에 필요한 class 등 기본적인 구현에 필수적인 요소와 실제 애플리케이션 작성에 필요한 부가적인 요소까지 함께 제공&lt;BR&gt;&lt;BR&gt;Data Access, GUI, secret, XML/SOAP, thread, File I/O, degugging ...&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;H3&gt;C# Language의 특징&lt;/H3&gt;
&lt;P&gt;&lt;BR&gt;.NET platform 에 가장 잘 들어맞도록 설계된 언어&lt;BR&gt;&lt;BR&gt;Java 처럼 문법적으로 깔끔하고, Visual Basic 처럼 쉽고, C++ 처럼 유연하고 강력한 언어를 지향&lt;BR&gt;&lt;BR&gt;Visual Basic의 class property 와 C++의 연산자 오버로딩을 C#에 반영(이 두가지는 Java에 없다.)&lt;/P&gt;
&lt;P&gt;C#은 .NET Runtime(CLR)에서만 작동&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;H3&gt;.NET 지원 언어의 실행과정&lt;/H3&gt;
&lt;P&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://web20korea.com/attach/1/1200719464.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;275&quot; width=&quot;450&quot; /&gt;&lt;/div&gt;&lt;/P&gt;
&lt;br /&gt;</summary>
  </entry>
  <entry>
    <title type="html">프로젝트관리 고홈 버전 1</title>
    <link rel="alternate" type="text/html" href="http://web20korea.com/277" />
    <link rel="replies" type="application/atom+xml" href="http://web20korea.com/atom/response/277" thr:count="0"/>
    <author>
      <name>(web20korea)</name>
    </author>
    <id>http://web20korea.com/277</id>
    <updated>2010-01-08T11:15:55+09:00</updated>
    <published>2010-01-08T11:15:55+09:00</published>
    <summary type="html">&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://web20korea.com/attach/1/1321240817.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;286&quot; width=&quot;450&quot; /&gt;&lt;/div&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://web20korea.com/attach/1/1174100330.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;288&quot; width=&quot;450&quot; /&gt;&lt;/div&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://web20korea.com/attach/1/1049582288.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;262&quot; width=&quot;450&quot; /&gt;&lt;/div&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://web20korea.com/attach/1/1159859379.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;281&quot; width=&quot;450&quot; /&gt;&lt;/div&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://web20korea.com/attach/1/1292052446.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;273&quot; width=&quot;450&quot; /&gt;&lt;/div&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://web20korea.com/attach/1/1040918311.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;273&quot; width=&quot;450&quot; /&gt;&lt;/div&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://web20korea.com/attach/1/1113496170.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;292&quot; width=&quot;450&quot; /&gt;&lt;/div&gt;&lt;BR&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://web20korea.com/attach/1/1331420185.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;264&quot; width=&quot;450&quot; /&gt;&lt;/div&gt;&lt;BR&gt;&lt;BR&gt;[0911-1001] C#, .NET Framework 3.5, MSSQL&lt;BR&gt;어플리케이션 ( 가칭 고홈 관리자모듈 버전 1 )&lt;BR&gt;</summary>
  </entry>
  <entry>
    <title type="html">내가 아이폰을 사진 못했어도 아이폰에 찍히다 ㅎㅎ</title>
    <link rel="alternate" type="text/html" href="http://web20korea.com/276" />
    <link rel="replies" type="application/atom+xml" href="http://web20korea.com/atom/response/276" thr:count="0"/>
    <category term="i6020345" />
    <author>
      <name>(web20korea)</name>
    </author>
    <id>http://web20korea.com/276</id>
    <updated>2009-12-16T08:59:07+09:00</updated>
    <published>2009-12-15T15:49:43+09:00</published>
    <summary type="html">&lt;DIV style=&quot;TEXT-ALIGN: center&quot;&gt;&lt;div class=&quot;imageblock center&quot; style=&quot;text-align: center; clear: both;&quot;&gt;&lt;img src=&quot;http://web20korea.com/attach/1/1286281596.jpg&quot; alt=&quot;사용자 삽입 이미지&quot; height=&quot;428&quot; width=&quot;320&quot; /&gt;&lt;/div&gt;&lt;BR&gt;&lt;BR&gt;상큼한걸..&lt;/DIV&gt;</summary>
  </entry>
  <entry>
    <title type="html">경험경제, 경험산업 시대의 진정성에 대해서, 조셉파인의 TED 발표</title>
    <link rel="alternate" type="text/html" href="http://web20korea.com/274" />
    <link rel="replies" type="application/atom+xml" href="http://web20korea.com/atom/response/274" thr:count="0"/>
    <category term="i6020345" />
    <author>
      <name>(web20korea)</name>
    </author>
    <id>http://web20korea.com/274</id>
    <updated>2009-12-08T12:34:59+09:00</updated>
    <published>2009-12-08T12:34:59+09:00</published>
    <summary type="html">&lt;P align=center&gt;출처 : &lt;A href=&quot;http://uxfactory.com/789&quot; target=_blank&gt;http://uxfactory.com/789&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;object width=&quot;446&quot; height=&quot;326&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://video.ted.com/assets/player/swf/EmbedPlayer.swf&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot; /&gt;&lt;param name=&quot;wmode&quot; value=&quot;transparent&quot;&gt;&lt;/param&gt;&lt;param name=&quot;bgColor&quot; value=&quot;#ffffff&quot;&gt;&lt;/param&gt; &lt;param name=&quot;flashvars&quot; value=&quot;vu=http://video.ted.com/talks/dynamic/JosephPine_2004-medium.flv&amp;amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/JosephPine-2004.embed_thumbnail.jpg&amp;amp;vw=432&amp;amp;vh=240&amp;amp;ap=0&amp;amp;ti=434&amp;amp;introDuration=16500&amp;amp;adDuration=4000&amp;amp;postAdDuration=2000&amp;amp;adKeys=talk=joseph_pine_on_what_consumers_want;year=2004;theme=not_business_as_usual;theme=unconventional_explanations;theme=what_makes_us_happy;event=TED2004;&amp;amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;&quot; /&gt;&lt;embed src=&quot;http://video.ted.com/assets/player/swf/EmbedPlayer.swf&quot; pluginspace=&quot;http://www.macromedia.com/go/getflashplayer&quot; type=&quot;application/x-shockwave-flash&quot; wmode=&quot;transparent&quot; bgColor=&quot;#ffffff&quot; width=&quot;446&quot; height=&quot;326&quot; allowFullScreen=&quot;true&quot; flashvars=&quot;vu=http://video.ted.com/talks/dynamic/JosephPine_2004-medium.flv&amp;amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/JosephPine-2004.embed_thumbnail.jpg&amp;amp;vw=432&amp;amp;vh=240&amp;amp;ap=0&amp;amp;ti=434&amp;amp;introDuration=16500&amp;amp;adDuration=4000&amp;amp;postAdDuration=2000&amp;amp;adKeys=talk=joseph_pine_on_what_consumers_want;year=2004;theme=not_business_as_usual;theme=unconventional_explanations;theme=what_makes_us_happy;event=TED2004;&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/P&gt;</summary>
  </entry>
  <entry>
    <title type="html">Hungarian Rhapsodies</title>
    <link rel="alternate" type="text/html" href="http://web20korea.com/273" />
    <link rel="replies" type="application/atom+xml" href="http://web20korea.com/atom/response/273" thr:count="0"/>
    <category term="i6020345" />
    <author>
      <name>(web20korea)</name>
    </author>
    <id>http://web20korea.com/273</id>
    <updated>2009-12-03T10:47:33+09:00</updated>
    <published>2009-12-03T10:47:33+09:00</published>
    <summary type="html">&lt;LI&gt;&lt;A title=&quot;Hungarian Rhapsody No. 1&quot; href=&quot;/wiki/Hungarian_Rhapsody_No._1&quot;&gt;&lt;U&gt;&lt;FONT color=#0066cc&gt;No. 1 in E major&lt;/FONT&gt;&lt;/U&gt;&lt;/A&gt; (&lt;I&gt;à son ami E. Zerdahely&lt;/I&gt;) 
&lt;LI&gt;&lt;A title=&quot;Hungarian Rhapsody No. 2&quot; href=&quot;/wiki/Hungarian_Rhapsody_No._2&quot;&gt;&lt;U&gt;&lt;FONT color=#0066cc&gt;No. 2 in C-sharp minor&lt;/FONT&gt;&lt;/U&gt;&lt;/A&gt; (&lt;I&gt;au Comte Ladislas Teleky&lt;/I&gt;) 
&lt;LI&gt;No. 3 in B-flat minor (&lt;I&gt;au Comte &lt;A title=&quot;Leo Festetics&quot; href=&quot;/wiki/Leo_Festetics&quot;&gt;&lt;U&gt;&lt;FONT color=#0066cc&gt;Leo Festetics&lt;/FONT&gt;&lt;/U&gt;&lt;/A&gt;&lt;/I&gt;) 
&lt;LI&gt;No. 4 in E-flat major (&lt;I&gt;au Comte Casimir Esterházy&lt;/I&gt;) 
&lt;LI&gt;No. 5 in E minor, &lt;I&gt;Héroïde-élégiaque&lt;/I&gt; (&lt;I&gt;Comtesse Sidonie Reviczky&lt;/I&gt;) 
&lt;LI&gt;&lt;A title=&quot;Hungarian Rhapsody No. 6&quot; href=&quot;/wiki/Hungarian_Rhapsody_No._6&quot;&gt;&lt;U&gt;&lt;FONT color=#0066cc&gt;No. 6 in D-flat major&lt;/FONT&gt;&lt;/U&gt;&lt;/A&gt; (&lt;I&gt;au Comte Antoine d&#039;Appony&lt;/I&gt;) 
&lt;LI&gt;No. 7 in D minor (&lt;I&gt;au Baron Fery Orczy&lt;/I&gt;) 
&lt;LI&gt;No. 8 in F-sharp minor (&lt;I&gt;&lt;A class=new title=&quot;À Anton Augusz (page does not exist)&quot; href=&quot;/w/index.php?title=%C3%80_Anton_Augusz&amp;amp;action=edit&amp;amp;redlink=1&quot;&gt;&lt;U&gt;&lt;FONT color=#0066cc&gt;à Anton Augusz&lt;/FONT&gt;&lt;/U&gt;&lt;/A&gt;&lt;/I&gt;) 
&lt;LI&gt;No. 9 in E-flat major, &lt;I&gt;Pesther Carneval&lt;/I&gt; (&lt;I&gt;à H. W. Ernst&lt;/I&gt;) 
&lt;LI&gt;No. 10 in E major (&lt;I&gt;à Béni Egressy&lt;/I&gt;) 
&lt;LI&gt;No. 11 in A minor (&lt;I&gt;au Baron &lt;A class=new title=&quot;Fery Orczy (page does not exist)&quot; href=&quot;/w/index.php?title=Fery_Orczy&amp;amp;action=edit&amp;amp;redlink=1&quot;&gt;&lt;U&gt;&lt;FONT color=#0066cc&gt;Fery Orczy&lt;/FONT&gt;&lt;/U&gt;&lt;/A&gt;&lt;/I&gt;) 
&lt;LI&gt;No. 12 in C-sharp minor (&lt;I&gt;à &lt;A title=&quot;Joseph Joachim&quot; href=&quot;/wiki/Joseph_Joachim&quot;&gt;&lt;U&gt;&lt;FONT color=#0066cc&gt;Joseph Joachim&lt;/FONT&gt;&lt;/U&gt;&lt;/A&gt;&lt;/I&gt;) 
&lt;LI&gt;No. 13 in A minor (&lt;I&gt;au Comte Leo Festetics&lt;/I&gt;) 
&lt;LI&gt;No. 14 in F major (&lt;I&gt;à &lt;A title=&quot;Hans von Bülow&quot; href=&quot;/wiki/Hans_von_B%C3%BClow&quot;&gt;&lt;U&gt;&lt;FONT color=#0066cc&gt;Hans von Bülow&lt;/FONT&gt;&lt;/U&gt;&lt;/A&gt;&lt;/I&gt;) 
&lt;LI&gt;No. 15 in A minor, &lt;I&gt;&lt;A title=&quot;Rákóczi March&quot; href=&quot;/wiki/R%C3%A1k%C3%B3czi_March&quot;&gt;&lt;U&gt;&lt;FONT color=#0066cc&gt;Rákóczi-Marsch&lt;/FONT&gt;&lt;/U&gt;&lt;/A&gt;&lt;/I&gt; 
&lt;LI&gt;No. 16 in A minor (&lt;I&gt;Budapest Munkácsy-Festlichkeiten&lt;/I&gt;) 
&lt;LI&gt;No. 17 in D minor 
&lt;LI&gt;No. 18 in F-sharp minor (&lt;I&gt;ungarischen Ausstellung in Budapest&lt;/I&gt;) 
&lt;LI&gt;No. 19 in D minor, &lt;I&gt;d&#039;après les &#039;Csárdás nobles&#039; de K. Ábrányi (sr)&lt;/I&gt; &lt;/LI&gt;</summary>
  </entry>
  <entry>
    <title type="html">이미지 트랙킹 툴</title>
    <link rel="alternate" type="text/html" href="http://web20korea.com/272" />
    <link rel="replies" type="application/atom+xml" href="http://web20korea.com/atom/response/272" thr:count="0"/>
    <category term="Project" />
    <author>
      <name>(web20korea)</name>
    </author>
    <id>http://web20korea.com/272</id>
    <updated>2009-12-09T13:25:04+09:00</updated>
    <published>2009-12-02T11:14:52+09:00</published>
    <summary type="html">&lt;P&gt;이미지 스크랩 이벤트 등관련해서&lt;BR&gt;&lt;BR&gt;해당 스크랩된 이미지가 얼마나 노출되는지를 알아보기위한&lt;BR&gt;&lt;BR&gt;IIS + 404페이지를 이용한 트랙킹툴사이트&lt;BR&gt;&lt;BR&gt;[0911]ASP, MSSQL, IIS6.0&lt;/P&gt;</summary>
  </entry>
</feed>
