ASP.NET에 필요한 기본 C# 지식을 알아보세요.
저자:Eve Cole
업데이트 시간:2009-12-05 14:52:37
-
마이크로소프트의 예제 교과서에서는 C#, VB, Jscript 세 가지 언어에 대해 이야기하고 있다. 모두가 새로운 것을 배울 수 있도록 C#을 배워보자. C++에 대한 기본 지식을 갖고 있는 것이 가장 좋습니다.
하지만 없어도 상관없습니다. 조금 더 노력하면 됩니다.
모든 언어는 두 부분으로 구성됩니다.
데이터 + 문법 + 알고리즘
데이터는 정보를 표현하는 데 사용되고 구문은 정보를 제어하는 데 사용됩니다. 직설적으로 말하면, 알고리즘은 사람들이 문제를 해결하기 위해 정리한 사고 방식의 일부입니다. 데이터에는 당연히 데이터 구조가 있고 그 다음에는 쿼리, 삽입, 수정 등이 있습니다.
1. 물론 변수는 데이터를 저장하는 데 사용됩니다. 이제 C#의 선언 방법에 대해 이야기해 보겠습니다.
일반적인 방법은 다음과 같습니다.
유형 + 변수 이름
int x //정수 변수 정의
string name,pwd; //두 개의 문자 변수를 정의합니다.
object x; //객체를 정의합니다.
object obj=new object();//객체를 기반으로 인스턴스 생성
public string x;//모든 사용자가 접근할 수 있도록 문자 변수에 유형 수정자를 추가합니다.
설명하려면:
변수를 선언할 때 int string object와 같은 유형 단어에는 소문자를 사용하십시오. 왜냐하면 C#은 엄격하게 대소문자를 구분하기 때문입니다. INT x를 사용하여 변수를 정의하는 것은 잘못되었습니다.
두 가지 프로그램을 살펴보겠습니다.
/* 변수 선언 방법 알아보기
vagrant로 생성 */
시스템 사용;
수업 테스트
{ 정적 무효 메인()
{ 정수 x=3;
Console.WriteLine("x={0}",x);
문자열 이름="방랑자";
문자열 비밀번호="197926";
Console.WriteLine("귀하의 이름은 :{0};pwd는 {1}입니다.",name,pwd);
객체 y;
y=x;//명시적 변환
Console.WriteLine("y={0}",y);
}
}
2. 브라우저에 문자를 보냅니다.
위 내용은 System.Console.WriteLine을 사용하여 C#에서 변수의 값을 출력하는 내용이지만 ASP.NET에서는 여전히 Response 개체의 Response.Write("char") 메서드를 사용해야 하지만 생략할 수는 없습니다. 이때 괄호.
예:
<%@ 언어="C#" %>
<% 문자열 이름;
이름="방랑자";
Response.Write("당신의 이름은 "+name)입니다.
%>
3. 인덱스 속성 값에 액세스합니다(양식의 요소를 예로 사용).
ASP를 배운 친구들은 Requst.Form("object name")을 사용하여 양식 개체의 값을 추출할 수 있다는 것을 알고 있습니다. 그러나 asp.net에서는 Request.QueryString["name"]을 사용하여 이를 추출합니다.
4. 인덱스 속성 선언
asp.net에서는 이벤트 프로그래밍 개념과 인덱스 표시기를 배워야 합니다. 인덱스 포인터를 통해 배열처럼 클래스의 데이터 정보에 접근할 수 있습니다. 먼저 간단한 예제를 구성해 보겠습니다.
시스템 사용;
수업팀
{
string[] s_name=new string[3]{"vagrant","jack","rose"};//클래스의 필드를 정의한 후 인덱스를 통해 외부 클래스에 접근할 수 있도록 생성자 함수를 작성합니다.
public string this[int nIndex]//액세스 인덱스 선언
{
얻다 {
return s_name[nIndex];//외부 클래스 읽기 액세스 제공
}
세트 {
s_name[nIndex]=value;//외국 클래스 쓰기 권한 제공
}
}
}
수업 테스트
{
공개 정적 무효 Main(){
Team t1=new Team();//Team 클래스의 인스턴스 생성
for(int i=0;i<3;i++)
Console.WriteLine(t1[i]);//인덱스 표시자를 통해 인스턴스의 데이터 정보에 접근
}
}
5. 데이터 정의 및 초기화
배치 데이터를 처리할 때 배열을 사용하는 경우가 많습니다. 배열을 정의할 때 유형, 데이터 이름, 차원이라는 세 가지 문제를 고려해야 합니다.
1차원 데이터를 예로 들어보겠습니다. 결국 1차원 데이터가 많이 사용됩니다.
배열을 정의합니다.
문자열 학생이름[]=새 문자열[50];
초기화:
방법 1.
학생이름[0]="방랑자";
학생이름[1]="잭";
........
방법 2.
int[] sex=new int[2]{0,1};//0은 남성을 나타내고, 1은 여성을 나타냅니다.
이것은 이해하기 쉬우므로 설명하지 않겠습니다.
6. 구조와 열거형
내가 구조체와 열거형을 함께 이야기하는 이유는 공통점과 차이점이 있기 때문이다.
구조: 단일 개체를 구성하는 관련 정보의 집합입니다. 주소록에는 일반적으로 이름, 전화번호, 주소 등이 포함됩니다.
열거형: 논리적으로 분리할 수 없는 일련의 데이터입니다. 예를 들어, 주에는 월요일부터 일요일까지의 요일이 있습니다. 그러나 월요일부터 일요일은 논리적으로 분리될 수 없습니다.
둘 사이에는 차이점이 있습니다. 구조는 데이터 모음인 반면, 열거형은 한 번에 하나만 가져올 수 있습니다. 구조와 열거형은 모두 데이터 구조의 유형입니다.
구조적 데이터 유형을 정의합니다.
구조체 전화번호부 {
공개 문자열 이름;
공중전화;
공개 문자열 주소;
}
이 구조 유형의 변수를 정의합니다.
전화번호부 p1;
구조 변수의 각 멤버에 값 할당
p1.name="방랑자";
p1.phone="88888888";
p1.address="우한";
열거형 데이터 유형 정의 및 값 할당
//열거형 유형 정의
공개 열거형 MessageSize {
작음 = 0,
중간 = 1,
대형 = 2
}
//열거형 변수 생성
공개 MessageSize msgsize;
//이 변수에 값을 할당합니다.
msgsize = 작음;
7. 메소드 선언 및 사용
//반환값이 없는 함수 정의
무효 무효함수() {
...
}
//반환값을 갖는 하위 함수 선언
문자열 문자열함수() {
...
return (String) val;//(string)은 반환 유형을 나타냅니다.
}
//계산 가능한 함수 선언
문자열 parmfunction(문자열 a, 문자열 b) {
...
return (문자열) (a + b);
}
// 함수 사용
무효함수();
문자열 s1 = 문자열함수();
String s2 = parmfunction("안녕하세요", "세계!");
8. 프로세스 제어문
C#과 C++의 흐름 제어 문 간에는 큰 차이가 없습니다. 단지 C#에 foreach가 추가되었다는 것뿐입니다(vb 프로그래머에게는 친숙할 것입니다).
프로세스 제어에서 가장 나쁜 점은 선택과 반복입니다.
if 조건문 사용법:
if(Requery.QueryString["name"]==null){
성명....
}
선택 항목이 너무 많으면 일반적으로 스위치 문을 사용합니다.
예:
스위치 (이름) {
사례 "John":
...
부서지다;
사례 "폴":
...
부서지다;
케이스 "링고":
...
부서지다;
기본:
...
부서지다;
}
일반적으로 루프 문에는 두 가지 유형이 있습니다.
a.for 루프
for (int i=0; i<3; i++){
성명...
}
b.while 루프
int i = 0;
동안 (i<3) {
Console.WriteLine(i.ToString());//i.ToString()의 목적은 i를 문자열 유형으로 변환하는 것입니다.
나는 += 1;
}
9.예외 처리
프로그램을 작성하다 보면, 미리 예측할 수 없는 상황에 직면하는 경우가 많습니다. 예를 들어 사용자 입력 오류, 메모리 부족, 사용할 수 없는 네트워크 리소스, 사용할 수 없는 데이터베이스 등이 있습니다. 따라서 이러한 문제를 처리하려면 예외 처리 방법을 사용해야 합니다. C#의 모든 예외는 System.Exception 클래스에서 상속되는 클래스의 인스턴스입니다.
먼저 throw 예외 문을 소개하겠습니다.
표현을 던지다
이 문은 표현식을 평가할 때 생성된 예외입니다.
예외 처리 설명:
try는 블록 실행 중에 발생하는 예외를 잡는 데 사용됩니다.
cathc는 이 예외를 처리하는 데 사용됩니다.
일반적인 방법:
노력하다 {
//예외가 발생할 수 있는 코드
} catch(OverflowException e) {
//자세한 예외 잡기
} catch(예외 e) {
//일반적인 예외를 잡아라
} 마지막으로 {
//예외없이 코드 실행
}
데이터베이스 연결 오류를 처리하는 Beibei에서 작성한 예외를 살펴보세요.
노력하다
{
OleDbConnection conn = getConn(); //getConn(): 연결 개체를 가져옵니다.
OleDbDataAdapter 어댑터 = 새로운 OleDbDataAdapter();
string sqlstr="select id,title,author,pic,hits,posttime from note order by posttime desc";
mydataset= 새로운 System.Data.DataSet();
Adapter.SelectCommand = new OleDbCommand(sqlstr, conn);
Adapter.Fill(mydataset,"notes");
conn.Close();
}
잡기(예외e)
{
throw(new Exception("데이터베이스 오류:" + e.Message))
}
10. 문자열 처리
C#에서는 문자열이 참조 유형이므로 연결 및 잘림을 사용할 수 있습니다.
아래 예시를 읽어보시면 아실 겁니다!
// 문자열 사용
문자열 s1;
문자열 s2 = "안녕하세요";
s2 += "세계";
s1 = s2 + "!!!";
//StringBuilder 클래스의 Append 메소드를 사용합니다.
StringBuilder s3 = 새로운 StringBuilder();
s3.Append("안녕하세요");
s3.Append("세계");
s3.Append("!!!");
11.이벤트 처리
이벤트는 외부 세계에 알림을 보내는 클래스의 멤버입니다.
먼저 이벤트 처리의 대표적인 예를 살펴보겠습니다.
void MyButton_Click(객체 발신자,
EventArgs E) {
...
}
이것에 대해서는 잘 모르겠습니다. MFC를 보고 나면 더 명확해질 것이라고 들었습니다. 이 분야에 경험이 있는 분이라면 조언을 주실 수 있기를 바랍니다.
12. 이벤트를 선언하다
//공개 이벤트 생성
공개 이벤트 EventHandler MyEvent;
//이 이벤트에 대한 메소드를 정의합니다.
protected void OnMyEvent(EventArgs e) {
MyEvent(this, e);
}
13. 이벤트를 처리하려면 원인에 OR를 추가하세요.
Control.Change += new EventHandler(this.ChangeEventHandler);
Control.Change -= new EventHandler(this.ChangeEventHandler);
14.형식 변환
int i = 3;//정수 변수를 정의하고 값을 할당합니다.
String s = i.ToString();//정수를 문자열 유형으로 변환하려면 ToString()을 사용하세요.
double d = Double.Parse(s);//Double.Parse(var)를 사용하여 문자열 유형을 배정밀도 유형으로 변환합니다.
설명하지 않을 다른 것들도 있습니다. 특정 기초를 다진 후에 자세히 살펴보겠습니다. 어쨌든, 이제 이러한 내용을 이해했으므로 앞으로 발생하는 일반적인 문제를 처리하는 데 아무런 문제가 없을 것입니다.