【property】 프로퍼티
오브젝트 지향 프로그래밍에 쓰여지는 오브젝트가 보유하고 있는 성질을 나타낸 데이터이다.
예를 들어, 영상 데이터 오브젝트이면 높이나 폭 등의 데이터를 프로퍼티로서 가지고 있다.
구체적으로 어떠한 프로퍼티를 가지고 있는지는 오브젝트에 따라 다르며, 오브젝트의 개발자가 오브젝트의 성질에 따라서 설정한다. 프로퍼티 값에는 변경 할 수 없는 것과 변경 가능한 것이 있으며, 변경 가능한 프로퍼티는 같은 오브젝트에 포함되는 메소드를 사용하여 변경할 수 있다.
복사 생성자는 무엇인가?
말 그대로 복사가 일어날 때 호출되는 생성자이다.
일부 언어와는 달리 C#에서는 복사 생성자를 제공하지 않습니다. 새 개체를 만들고 기존 개체에서 값을 복사하려면 적절한 메서드를 직접 작성해야 합니다.
class Person
{
private string name;
private int age;
// Copy constructor.
public Person(Person previousPerson)
{
name = previousPerson.name;
age = previousPerson.age;
}
// Instance constructor.
public Person(string name, int age)
{
this.name = name;
this.age = age;
}
// Get accessor.
public string Details
{
get
{
return name + " is " + age.ToString();
}
}
}
class TestPerson
{
static void Main()
{
// Create a new person object.
Person person1 = new Person("George", 40);
// Create another new object, copying person.
Person person2 = new Person(person1);
Console.WriteLine(person2.Details);
// Keep the console window open in debug mode.
Console.WriteLine("Press any key to exit.");
Console.ReadKey();
}
}
// Output: George is 40
정적 생성자
전용 생성자는 특수 인스턴스 생성자입니다. 이것은 정적 멤버만 포함하는 클래스에서 일반적으로 사용됩니다. 클래스에 전용 생성자만 한 개 이상 있고 공용 생성자는 없을 경우 중첩 클래스를 제외한 다른 클래스는 이 클래스의 인스턴스를 만들 수 없습니다. 예를 들면 다음과 같습니다.
class SimpleClass
{
// Static variable that must be initialized at run time.
static readonly long baseline;
// Static constructor is called at most one time, before any
// instance constructor is invoked or member is accessed.
static SimpleClass()
{
baseline = DateTime.Now.Ticks; //초기에 세팅
}
}
인스턴스 생성자
인스턴스 생성자는 인스턴스를 만들고 초기화하는 데 사용됩니다. 클래스 생성자는 다음 예제처럼 새 개체를 만들 때 호출됩니다.
class CoOrds
{
public int x, y;
// constructor
public CoOrds()
{
x = 0;
y = 0;
}
}
전용 생성자
전용 생성자는 특수 인스턴스 생성자입니다. 이것은 정적 멤버만 포함하는 클래스에서 일반적으로 사용됩니다. 클래스에 전용 생성자만 한 개 이상 있고 공용 생성자는 없을 경우 중첩 클래스를 제외한 다른 클래스는 이 클래스의 인스턴스를 만들 수 없습니다. 예를 들면 다음과 같습니다.
public class Counter
{
private Counter() { }
public static int currentCount;
public static int IncrementCount()
{
return ++currentCount;
}
}
class TestCounter
{
static void Main()
{
// If you uncomment the following statement, it will generate
// an error because the constructor is inaccessible:
// Counter aCounter = new Counter(); // Error
Counter.currentCount = 100;
Counter.IncrementCount();
Console.WriteLine("New count: {0}", Counter.currentCount);
// Keep the console window open in debug mode.
Console.WriteLine("Press any key to exit.");
Console.ReadKey();
}
}
// Output: New count: 101
'C#.NET' 카테고리의 다른 글
[정규식] Visual Basic에서 HTML 문자열의 텍스트 제거 (0) | 2010.01.12 |
---|---|
[ ListBox ] 리스트박스 아이템 순서 바꾸기 (1) | 2010.01.12 |
[날짜 , 날짜형식 ,날짜검색,날짜패턴] 사용자 지정 DateTime 형식 문자열 (0) | 2010.01.12 |
[설치,배포]설치 후에 프로그램을 자동으로 실행하는 방법 (0) | 2010.01.11 |
[ DataTable ] 데이타 테이블로 데이타리스트, 그리드뷰 채우기 (0) | 2010.01.07 |
제네릭 List<T> (0) | 2010.01.04 |
[MSDN]박싱(Boxing) 언박싱(UnBoxing) (0) | 2010.01.04 |
[MSDN].NET Framework Client Profile (0) | 2009.12.30 |
[MSDN]Windows 서비스 응용 프로그램을 위한 설치 프로젝트를 만드는 방법 (0) | 2009.12.29 |
base(C# 참조) (3) | 2009.12.29 |