-
static정적맴버 배열 연산자 is/as foreach 문 메서드 오버로딩 메서드 가변 인자.NET/C# Basic 2008. 10. 14. 21:41반응형
정적(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/asis 연산자는 생성한 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 + "'" );
foreach 문배열이나 콜렉션에서 순서대로 값을 가져와 반복해서 수행할 때 이용배열이 가지고 있는 값을 이용해서 반복 실행하는 예배열에 들어 있는 값을 순서대로 가져오다가 마지막 값을 가져오면 반복을 종료
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 ) {...}
}
가변 인자메서드에서 가변적으로 변하는 인자를 받아들이기 위해 params 키워드를 이용하면,
메서드가 취하는 인자 개수에 제한 없이 메서드를 구현메서드가 정수 인자 리스트를 배열로 받아오는 예
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] +",");
}
}
object 형을 가변 인자로 쓰면 어떤 데이터형 이라도 인자로 받아들일 수 있다
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