정적(static) 멤버
일반적인 객체 사용 방법은 클래스를 정의하고, 여러 개의 인스턴스를 생성
현재 생성된 총 인스턴스 수를 구하려면 정수형 변수를 두고 인스턴스를 생성할 때마다 하나씩 증가
인스턴스간에 공유해야 하는 값이 필요한 경우, 정적(static) 멤버를 사용
using System;
class Point
{
public Point()
{
bbb++;
Console.WriteLine("생성"+ bbb);
}
public int bbb = 0;
// static int bbb = 0;v // 스택틱하면 값이 더해진다
}
class jks
{
static void Main()
{
Point pt = new Point();
Point pt1 = new Point();
}
}
배열//////
using System;
namespace jkstest
{
class arraytest
{
static void Main()
{
int[] arrayA = new int[7];
for(int a = 0 ; a < arrayA.Length ; a++ )
{
arrayA[a] = a;
Console.WriteLine(arrayA[a]);
}
}
}
}
///////////////////
Sort |
배열에 있는 요소 값을 정렬 예) Array.Sort( arr ); |
Reverse |
배열에 요소 값을 거꾸로 배치 예) Array.Reverse( arr ); |
IndexOf |
배열의 처음부터 값을 찾기 시작해서 맨 처음 찾은 값의 위치를 알려준다. 예) int index = Array.IndexOf( arr, Value ); |
LastIndex |
배열의 끝에서부터 거꾸로 찾아서 위치를 알려준다. 예) int index = Array.LastIndexOf( arr, Value ); |
BinarySearch |
배열에서 binary search를 수행 예) int index = Array.BinarySearch( arr, Value ); |
is/as
is 연산자는 생성한 object 객체가 원하는 객체인지 확인할 때 사용
// is 연산자
object obj = "문자열입니다.";
if ( obj is string ) // string 형인가요?
Console.WriteLine ("obj is string");
as 연산자는 object 객체가 원하는 객체인지 확인하고 틀리면 null 값을 리턴하고 맞으면 해당하는 객체로 변환해서 리턴
.
// as 연산자
string s = obj as string; // string 형 변환
if ( s != null )
Console.WriteLine ( "'" + s + "'" );
using System;
namespace jkstest
{
class arraytest
{
static void Main()
{
string[] str = { "red", "sex", "man", "girl", "an" };
foreach(string a in str)
{
Console.WriteLine("{0}", a);
}
}
}
}
메서드 오버로딩
메서드 오버로딩은 나중에 클래스 생성자를 정의할 때 유용하게 사용
생성자 이름은 클래스 이름과 같아야 하는데, 여러 개 생성자를 정의해야 하는 경우
class Point
{
public Point() {...}
public Point( int x, int y ) {...}
public Point( Point pt ) {...}
}
메서드가 취하는 인자 개수에 제한 없이 메서드를 구현
using System;
class arraytest
{
static void Main()
{
// 가변 인자를 받아들이는 메서드에 콤마를 이용해서 인자를 구분해서 넣어줄 수도 있고,
// 배열을 넘겨줄 수도 있다
Show(1,2,3);
Show(1223,6784,1543,23);
Show(new int[3] { 75,21,64});
}
static void Show(params int[] args)
{
for (int i = 0; i < args.Length; i++)
Console.WriteLine(args[i] +",");
}
}
Show 메서드는 object 형 인자 리스트를 받아들이도록 구현한 예
메서드
가변 인자
메서드에서 가변적으로 변하는 인자를 받아들이기 위해 params 키워드를 이용하면, 메서드가 취하는 인자 개수에 제한 없이 메서드를 구현
메서드가 정수 인자 리스트를 배열로 받아오는 예
// 인자로 여러 int 형 값을 받을 때
public static void Show( params int[] args )
{
for ( int i = 0 ; i < args.Length ; i++ )
Console.Write( args[i] + "," );
}
가변 인자를 받아들이는 메서드에 콤마를 이용해서 인자를 구분해서 넣어줄 수도 있고, 배열을 넘겨줄 수도 있다
Show( 1, 2, 3 );
Show( new int [3] { 1, 2, 3 } );
object 형을 가변 인자로 쓰면 어떤 데이터형 이라도 인자로 받아들일 수 있다
Show 메서드는 object 형 인자 리스트를 받아들이도록 구현한 예
using System;
class arraytest
{
static void Main()
{
test(1,'c', "string ");
}
static void test(params object[] aaa)
{
for (int i = 0; i < aaa.Length; i++)
Console.WriteLine("{0}",(object)aaa[i]);
}
}
'.NET > C# Basic' 카테고리의 다른 글
닷넷 클래스 리플렉션 reflection (0) | 2008.10.15 |
---|---|
클래스관련 const 상수 readonly 구조체관련 GetType() , is as (0) | 2008.10.15 |
프로퍼티 인덱서 (0) | 2008.10.15 |
연산자 메서드 operator +(), operator-() , 연산자 오버로딩? (0) | 2008.10.15 |
인터페이스(interface) 와 추상화클래스(abstract) 예제 (0) | 2008.10.14 |
C# Delegate와 Event 중요 (0) | 2008.10.13 |
Console.Read() 와 Console.ReadLine() 차이 (0) | 2008.10.10 |
흐름 제어 예제 기본문법 if for while swich foreach break continue (0) | 2008.10.10 |