ASP.NET に必要な C# の基本的な知識を学習します。
著者:Eve Cole
更新時間:2009-12-05 14:52:37
-
Microsoft の教科書例では、c#、vb、Jscript の 3 つの言語について説明しています。みんなに新しいことを学んでもらうために、c# を学びましょう。 C++ の基本的な知識を持っていることが最善です。
しかし、持っていなくても問題はありません、もう少し努力する必要があります。
どの言語にも 2 つの部分があります。
データ + 文法 + アルゴリズム
データは情報を表すために使用され、構文は情報を制御するために使用されます。平たく言えば、アルゴリズムとは人々が問題を解決するためにまとめた考え方のことです。データに関しては、当然データ構造があり、クエリ、挿入、変更などが存在します。
1. もちろん、変数はデータを格納するために使用されます。次に、C# の宣言方法について説明します。
通常の方法は次のとおりです。
型 + 変数名
int x //整数変数を定義する
string name,pwd; // 2 つの文字変数を定義します。
オブジェクト x; // オブジェクトを定義します。
object obj=new object();//オブジェクトに基づいてインスタンスを作成します
public string x;//すべてのユーザーがアクセスできるように、文字変数に型修飾子を追加します
説明すると:
C# では厳密に大文字と小文字が区別されるため、変数を宣言するときは int string object のように小文字を使用してください。
2 つのプログラムを見てみましょう。
/* 変数を宣言する方法を学ぶ
vagrant で作成 */
システムを使用する;
クラステスト
{ 静的 void Main()
{ int x=3;
Console.WriteLine("x={0}",x);
文字列名 = "浮浪者";
文字列 pwd="197926";
Console.WriteLine("あなたの名前は :{0};パスワードは {1}",name,pwd);
オブジェクトy;
y=x;//明示的な変換
Console.WriteLine("y={0}",y);
}
}
2. ブラウザに文字を送信します。
上記は C# で System.Console.WriteLine を使用して変数の値を出力する方法についてですが、ASP.NET では引き続き Response オブジェクトの Response.Write("char") メソッドを使用する必要がありますが、このときは括弧。
例:
<%@ 言語="C#" %>
<% 文字列名;
名前 = "浮浪者";
Response.Write("あなたの名前は"+名前);
%>
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;//外部クラスの書き込み権限を提供します
}
}
}
クラステスト
{
public static void Main(){
Team t1=new Team();//Team クラスのインスタンスを作成する
for(int i=0;i<3;i++)
Console.WriteLine(t1[i]);//インデックスインジケーターを通じてインスタンスのデータ情報にアクセスします
}
}
5. データの定義と初期化
バッチ データを処理する場合、配列を定義する際には、型、データ名、次元という 3 つの問題を考慮する必要があります。
例として 1 次元データを使用します。結局のところ、1 次元データが一般的に使用されます。
配列を定義します。
文字列学生名[]=新しい文字列[50];
初期化:
方法 1。
学生名[0]="浮浪者";
生徒名[1]="ジャック";
……
方法 2。
int[] sex=new int[2]{0,1};//0 は男性を表し、1 は女性を表します
これは簡単に理解できるので説明はしません。
6. 構造体と列挙型
構造体と列挙型について一緒に説明する理由は、それらには類似点と相違点があるからです。
構造: 単一の実体を形成する関連情報の集合。アドレス帳には通常、名前、電話番号、住所などが含まれます。
列挙: 論理的に分離できない一連のデータ。たとえば、週には月曜日から日曜日までの日があります。しかし、月曜日から日曜日までは論理的に切り離すことはできません。
両者には違いがあります。構造体はデータのコレクションですが、列挙型は一度に 1 つのデータしか取得できません。構造体と列挙型はどちらもデータ構造のタイプです。
構造データ型を定義します。
構造体電話帳 {
パブリック文字列名。
公衆糸電話。
パブリック文字列アドレス。
}
この構造体タイプの変数を定義します
電話帳 p1;
構造体変数の各メンバーに値を代入する
p1.name="浮浪者";
p1.phone="88888888";
p1.address="武漢";
列挙データ型を定義し、値を割り当てる
//列挙型を定義する
パブリック列挙型メッセージサイズ {
小 = 0、
中 = 1、
大 = 2
}
//列挙型変数を作成する
public MessageSize msgsize;
//この変数に値を代入します
msgsize = 小;
7. メソッドの宣言と使用
//戻り値のない関数を定義する
void voidfunction() {
...
}
//戻り値を持つサブ関数を宣言します
文字列 stringfunction() {
...
return (String) val;//(string) は戻り値の型を示します
}
//計算可能な関数を宣言する
String parmfunction(String a, String b) {
...
return (文字列) (a + b);
}
// 関数を使用する
voidfunction();
文字列 s1 = stringfunction();
String s2 = parmfunction("Hello", "World!");
8. プロセス制御ステートメント
C# と C++ のフロー制御ステートメントには大きな違いはありません。 foreach が C# に追加されるだけです (vb プログラマーにはよく知られているはずです)。
プロセス制御で最も問題となるのは、選択とループです。
if 条件文の使用法:
if(Requery.QueryString["name"]==null){
声明....
}
選択肢が多すぎる場合は、switch ステートメントがよく使用されます。
例:
スイッチ (名前) {
ケース「ジョン」:
...
壊す;
ケース「ポール」:
...
壊す;
ケース「リンゴ」:
...
壊す;
デフォルト:
...
壊す;
}
通常、ループ ステートメントには次の 2 種類があります。
a.for ループ
for (int i=0; i<3; i++){
声明...
}
b.while ループ
int i = 0;
while (i<3) {
Console.WriteLine(i.ToString());// i.ToString() の目的は、i を文字列型に変換することです
i += 1;
}
9.例外処理
プログラムを作成していると、事前に予測できない事態に遭遇することがよくあります。たとえば、ユーザー入力エラー、メモリ不足、ネットワーク リソースの使用不可、データベースの使用不可などです。したがって、このような問題に対処するには例外処理メソッドを使用する必要があります。 C# のすべての例外は、System.Exception クラスを継承するクラスのインスタンスです。
まず throw Exception ステートメントを導入しましょう。
式をスローします
このステートメントは、式の評価時に生成される例外です。
例外処理ステートメント:
try は、ブロックの実行中に発生する例外をキャッチするために使用されます。
この例外を処理するには、cathc が使用されます。
一般的な方法:
試す {
//例外をスローする可能性のあるコード
} catch(OverflowException e) {
// 詳細な例外をキャッチする
} catch(例外 e) {
//一般的な例外をキャッチします
} ついに {
// 例外なくコードを実行します
}
データベース接続エラーを処理する Beibei によって作成された例外を見てください。
試す
{
OleDbConnection conn = getConn(); //getConn(): 接続オブジェクトを取得します。
OleDbDataAdapter アダプター = 新しい OleDbDataAdapter();
string sqlstr="投稿時間の説明でメモの順序から ID、タイトル、著者、写真、ヒット数、投稿時間を選択します";
mydataset= 新しい System.Data.DataSet();
アダプター.SelectCommand = 新しい OleDbCommand(sqlstr, conn);
アダプタ.Fill(mydataset,"notes");
conn.Close();
}
catch(例外 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 += 新しい EventHandler(this.ChangeEventHandler);
Control.Change -= 新しい EventHandler(this.ChangeEventHandler);
14.型変換
int i = 3;//整変数を定義し、値を代入する
String s = i.ToString();//整数を文字列型に変換し、ToString() を使用します。
double d = Double.Parse(s);//Double.Parse(var) を使用して文字列型を倍精度型に変換します。
他にもいくつか説明しませんが、ある程度の基礎ができた後で詳しく見ていきましょう。とにかく、これらのことを理解したので、その後の一般的な問題に問題なく対処できるようになります。