String과 string의 차이..??
'Programming > C#' 카테고리의 다른 글
| c# 에서 다른창으로 메세지 날리기 기본소스 (9) | 2010.09.02 |
|---|---|
| 환경 변수 (0) | 2010.09.01 |
| DataGridView 활용 Tip (0) | 2010.08.19 |
| 메서드 매개 변수(C# params/ref/out) (0) | 2010.08.18 |
| datagrid에서 클릭하면 한 줄이 선택되도록 할 수 있나요? (0) | 2010.08.17 |
| c# 에서 다른창으로 메세지 날리기 기본소스 (9) | 2010.09.02 |
|---|---|
| 환경 변수 (0) | 2010.09.01 |
| DataGridView 활용 Tip (0) | 2010.08.19 |
| 메서드 매개 변수(C# params/ref/out) (0) | 2010.08.18 |
| datagrid에서 클릭하면 한 줄이 선택되도록 할 수 있나요? (0) | 2010.08.17 |
/FIXED 옵션을 사용하면 운영 체제에서는 기본 설정 기준 주소에서만 프로그램을 로드하게 됩니다. 기본 설정 기준 주소를 사용할 수 없으면 파일이 로드되지 않습니다. 자세한 내용은 /BASE(기준 주소)를 참조하십시오.
기본적으로 DLL을 빌드할 때는 /FIXED:NO가 기본값이 되고 다른 모든 프로젝트 형식에 대해서는 /FIXED가 기본값이 됩니다.
/FIXED를 지정하면 LINK에서는 프로그램에 재배치 섹션을 생성하지 않습니다. 런타임에 운영 체제가 해당 주소에서 프로그램을 로드할 수 없으면 오류 메시지가 표시되며 프로그램은 로드되지 않습니다.
프로그램에 재배치 섹션을 생성하려면 /FIXED:NO를 지정합니다.
Windows NT용 장치 드라이버를 빌드할 때는 /FIXED를 사용하지 마십시오.
프로젝트의 속성 페이지 대화 상자를 엽니다. 자세한 내용은 Visual C++ 프로젝트 속성 설정을 참조하십시오.
링커 폴더를 클릭합니다.
명령줄 속성 페이지를 클릭합니다.
추가 옵션 상자에 옵션을 입력합니다.
AdditionalOptions를 참조하십시오.
| 브레이크 포인트가 비활성화 될때 - '고급편' (0) | 2010.09.06 |
|---|---|
| 릴리즈 모드로 디버깅 하는 방법(2) (0) | 2010.09.03 |
| 릴리즈 모드 디버깅 방법 (0) | 2010.09.03 |
| /FORCE(파일 출력 강제) (0) | 2010.08.27 |
| [추천] VS 텍스트 편집기 배경색 (0) | 2010.08.19 |
/FORCE 옵션을 사용하면 링커에서는 기호가 참조되어 있지만 정의되어 있지 않은 경우나 여러 번 정의되어 있는 경우에도 올바른 .exe 파일 또는 DLL을 만듭니다.
/FORCE 옵션에는 다음과 같이 선택적 인수를 사용할 수 있습니다.
/FORCE:MULTIPLE을 사용하면 LINK에서 기호에 대한 정의를 하나 이상 찾더라도 출력 파일을 만들 수 있습니다.
/FORCE:UNRESOLVED를 사용하면 LINK에서 정의되지 않은 기호를 찾더라도 출력 파일을 만들 수 있습니다. 진입점 기호가 확인되지 않으면 /FORCE:UNRESOLVED는 무시됩니다.
/FORCE에 인수를 사용하지 않으면 MULTIPLE과 UNRESOLVED를 모두 의미합니다.
이 옵션을 사용하여 만든 파일이 예상대로 실행되지 않을 수도 있습니다. 링커에서는 /FORCE 옵션이 지정된 경우 증분 링크를 수행하지 않기 때문입니다.
/clr를 사용하여 모듈을 컴파일하는 경우 /FORCE를 지정해도 이미지가 생성되지 않습니다.
프로젝트의 속성 페이지 대화 상자를 엽니다. 자세한 내용은 Visual C++ 프로젝트 속성 설정을 참조하십시오.
링커 폴더를 클릭합니다.
명령줄 속성 페이지를 클릭합니다.
추가 옵션 상자에 옵션을 입력합니다.
AdditionalOptions를 참조하십시오.
| 브레이크 포인트가 비활성화 될때 - '고급편' (0) | 2010.09.06 |
|---|---|
| 릴리즈 모드로 디버깅 하는 방법(2) (0) | 2010.09.03 |
| 릴리즈 모드 디버깅 방법 (0) | 2010.09.03 |
| /FIXED(고정 기준 주소) (0) | 2010.08.27 |
| [추천] VS 텍스트 편집기 배경색 (0) | 2010.08.19 |
| 아이폰4 받고 나서 제일 먼저 할 것들 (0) | 2010.09.08 |
|---|---|
| 단축키로 윈도우 창 프로그램 숨기기 - 눈치코치 (0) | 2010.09.02 |
| 프로세스 선호도 관련 API 함수 (0) | 2010.07.20 |
| Metacognition (0) | 2010.07.13 |
| 창의성의 아이러니 (0) | 2010.07.13 |
| 브레이크 포인트가 비활성화 될때 - '고급편' (0) | 2010.09.06 |
|---|---|
| 릴리즈 모드로 디버깅 하는 방법(2) (0) | 2010.09.03 |
| 릴리즈 모드 디버깅 방법 (0) | 2010.09.03 |
| /FIXED(고정 기준 주소) (0) | 2010.08.27 |
| /FORCE(파일 출력 강제) (0) | 2010.08.27 |
| 환경 변수 (0) | 2010.09.01 |
|---|---|
| String과 string의 차이..?? (0) | 2010.08.27 |
| 메서드 매개 변수(C# params/ref/out) (0) | 2010.08.18 |
| datagrid에서 클릭하면 한 줄이 선택되도록 할 수 있나요? (0) | 2010.08.17 |
| DataSet 및 DataGrid 관련 팁 (0) | 2010.08.17 |
| Dot Net Perls (0) | 2010.11.08 |
|---|---|
| CppCheck(소스 결함 예방 툴) (0) | 2010.10.06 |
| Visual Assist X 관련 링크~ (0) | 2010.06.21 |
| 게임브리오 관련 사이트 (0) | 2010.06.07 |
| C++/CLI 참고 하는 사이트 (0) | 2010.06.03 |
ref 또는 out을 사용하지 않고 메서드의 매개 변수를 선언하면 매개 변수에 연결된 값을 할당할 수 있습니다. 메서드에서 이 값을 변경할 수 있지만 호출한 프로시저로 제어가 다시 전달되면 변경된 값은
유지되지 않습니다. 메서드 매개 변수 키워드를 사용하면 이러한 동작을 변경할 수 있습니다.
이 단원에서는 메서드 매개 변수를 선언할 때 사용할 수 있는 아래와 같은 키워드에 대해 설명합니다.
params(C# 참조)
params 키워드를 사용하면 인수 갯수가 변수로 주어지는 인수를 사용하는 메서드 매개 변수를 지정할 수
있습니다.
메서드 선언에서 params 키워드 다음에는 매개 변수를 추가할 수 없으며 params 키워드 하나만 메서드
선언에 사용할 수 있습니다.
예제
// cs_params.cs using System;
public class MyClass { public static void UseParams(params int[] list) { for (int i = 0 ; i < list.Length; i++) { Console.WriteLine(list[i]); } Console.WriteLine(); } public static void UseParams2(params object[] list) { for (int i = 0 ; i < list.Length; i++) { Console.WriteLine(list[i]); } Console.WriteLine(); } static void Main() { UseParams(1, 2, 3); UseParams2(1, 'a', "test"); // An array of objects can also be passed, as long as // the array type matches the method being called. int[] myarray = new int[3] {10,11,12}; UseParams(myarray); } }
1 2 3 1 a test 10 11 12
ref(C# 참조)ref 키워드는 인수를 참조로 전달하는 데 사용됩니다.
메서드의 모든 매개 변수 변경 사항은 호출하는 메서드로 제어가 다시 전달될 때 해당 변수에 반영됩니다.
ref 매개 변수를 사용하려면 메서드 정의와 호출하는 메서드에서 모두 ref 키워드를 명시적으로
사용해야 합니다. 예를 들면 다음과 같습니다.
예제
class RefExample { static void Method(ref int i) { i = 44; } static void Main() { int val = 0; Method(ref val); // val is now 44 } }ref 매개 변수에 전달되는 인수는 먼저 초기화되어야 합니다.
이는 해당 인수를 전달하기 전에 명시적으로 초기화할 필요가 없는 out과 다른 점입니다.
out을 참조하십시오.
ref 및 out은 런타임에 서로 다르게 취급되지만 컴파일 타임에는 동일하게 취급됩니다.
따라서 한 메서드는 ref 인수를 사용하고 다른 메서드는 out 인수를 사용하는 경우 메서드를
오버로드할 수 없습니다.
예를 들어, 이러한 두 메서드는 컴파일할 때 동일하게 간주되므로 다음과 같은 코드는 컴파일되지
않습니다.
class CS0663_Example { // compiler error CS0663: "cannot define overloaded // methods that differ only on ref and out" public void SampleMethod(ref int i) { } public void SampleMethod(out int i) { } }그러나 한 메서드가 ref 또는 out 인수를 사용하고 다른 메서드는 두 인수 중 어느 것도 사용하지
않는 경우 다음과 같이 오버로드할 수 있습니다.
class RefOutOverloadExample { public void SampleMethod(int i) { } public void SampleMethod(ref int i) { } }
설명
예제
위 예제에서와 같이 값 형식을 참조로 전달하는 방법 이외에 ref를 사용하여 참조 형식을 전달할 수도
있습니다.
이렇게 하면 참조 자체가 참조로 전달되므로 호출된 메서드에서 참조가 가리키는 개체를 수정할 수
있습니다.
다음 샘플에서는 참조 형식이 ref 매개 변수로 전달될 때 개체 자체가 변경될 수 있음을 보여 줍니다.
class RefRefExample { static void Method(ref string s) { s = "changed"; } static void Main() { string str = "original"; Method(ref str); // str is now "changed" } }
out(C# 참조)out 키워드는 인수를 참조로 전달하는 데 사용됩니다.
이는 ref 키워드와 비슷하지만 ref의 경우 변수를 전달하기 전에 초기화해야 한다는 점에서 차이가
있습니다.
out 매개 변수를 사용하려면 메서드 정의와 호출하는 메서드에서 모두 out 키워드를 명시적으로
사용해야 합니다.
예를 들면 다음과 같습니다.
class OutExample { static void Method(out int i) { i = 44; } static void Main() { int value; Method(out value); // value is now 44 } }out 인수로 전달되는 변수는 이를 전달하기 전에 초기화할 필요가 없지만 호출하는 메서드는
메서드 반환 이전에 값을 할당해야 합니다.
ref 및 out 키워드는 런타임에 서로 다르게 취급되지만 컴파일 타임에는 동일하게 취급됩니다.
따라서 한 메서드는 ref 인수를 사용하고 다른 메서드는 out 인수를 사용하는 경우 메서드를
오버로드할 수 없습니다.
예를 들어, 이러한 두 메서드는 컴파일할 때 동일하게 간주되므로 다음과 같은 코드는
컴파일되지 않습니다.
class CS0663_Example { // compiler error CS0663: "cannot define overloaded // methods that differ only on ref and out" public void SampleMethod(out int i) { } public void SampleMethod(ref int i) { } }그러나 한 메서드가 ref 또는 out 인수를 사용하고 다른 메서드는
두 인수 중 어느 것도 사용하지 않는 경우 다음과 같이 오버로드할 수 있습니다.
class RefOutOverloadExample { public void SampleMethod(int i) { } public void SampleMethod(out int i) { } }
설명
예제
메서드에서 값을 여러 개 반환해야 하는 경우 out 메서드를 선언하는 것이 좋습니다.
out 매개 변수를 사용하는 메서드에서는 변수를 반환 형식으로 사용할 수 있지만(return 참조)
호출하는 메서드에 하나 이상의 개체를 out 매개 변수로 반환할 수도 있습니다.
다음 예제에서는 out을 사용하여 한 번의 메서드 호출로 변수 세 개를 반환합니다.
세 번째 인수에는 null이 할당됩니다. 이렇게 하면 메서드에서 값을 선택적으로 반환할 수 있습니다.
class OutReturnExample { static void Method(out int i, out string s1, out string s2) { i = 44; s1 = "I've been returned"; s2 = null; } static void Main() { int value; string str1, str2; Method(out value, out str1, out str2); // value is now 44 // str1 is now "I've been returned" // str2 is (still) null; } }
| String과 string의 차이..?? (0) | 2010.08.27 |
|---|---|
| DataGridView 활용 Tip (0) | 2010.08.19 |
| datagrid에서 클릭하면 한 줄이 선택되도록 할 수 있나요? (0) | 2010.08.17 |
| DataSet 및 DataGrid 관련 팁 (0) | 2010.08.17 |
| File과 Directory, Path (0) | 2010.08.16 |
| DataGridView 활용 Tip (0) | 2010.08.19 |
|---|---|
| 메서드 매개 변수(C# params/ref/out) (0) | 2010.08.18 |
| DataSet 및 DataGrid 관련 팁 (0) | 2010.08.17 |
| File과 Directory, Path (0) | 2010.08.16 |
| GDI+ 선 (2) | 2010.08.03 |
// 특정 테이블의 컬럼의 데이터를 가져오기
dataSet.Tables[0].Rows["CameraName"][0].ToString()
// 현재 시간 데이터 조회
System.DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss");
// DataGrid에서 새로운 데이터가 추가될 때 이벤트
dataGrid.InitializingNewItem += new InitializingNewItemEventHandler(dataGrid_InitializingNewItem);
// DataSet에 새로운 레코드가 추가될 때 이벤트
dt.TableNewRow += new DataTableNewRowEventHandler(dt_TableNewRow);
...
public void DataUpdate()
{
dataBaseHandler.DataAdapterUpdate(dataSet);
}
[출처] DataSet 및 DataGrid 관련 팁|작성자 박상규
| 메서드 매개 변수(C# params/ref/out) (0) | 2010.08.18 |
|---|---|
| datagrid에서 클릭하면 한 줄이 선택되도록 할 수 있나요? (0) | 2010.08.17 |
| File과 Directory, Path (0) | 2010.08.16 |
| GDI+ 선 (2) | 2010.08.03 |
| C#의 가변인자 전달 (1) | 2010.07.28 |