キーワードにまとめることができない基本的なプログラミング概念の例をコードで示します。詳細については、「各言語のキーワードの比較」を参照してください。
コード例が示されるのは次のタスクです。
代入ステートメント
コメント
条件付きステートメント
変数の宣言
FOR ループ
ジェネリック型
基本クラスのメンバの隠ぺい
値型の初期化
参照渡しのパラメータ
値渡しのパラメータ
選択ステートメント
オブジェクト参照を Nothing に設定
構造化例外処理
WHILE ループ
Dim x As Integer Public x As Integer = 10
int x; int x = 10;
var x : int; var x : int = 10; var x = 10;
LOCAL x X = 10
' comment x = 1 ' comment Rem comment
// comment /* multiline comment */ /** Class Documentation */
// comment /* multiline comment */
* full line USE && end of line NOTE multiline ; comment
nVal = 7
nVal = 7;
または
STORE 7 to nVal
If nCnt <= nMax Then nTotal += nCnt ' Same as nTotal = nTotal + nCnt. nCnt += 1 ' Same as nCnt = nCnt + 1. Else nTotal += nCnt nCnt -= 1 End If
if (nCnt <= nMax) { nTotal += nCnt; nCnt++; } else { nTotal +=nCnt; nCnt--; }
if(nCnt < nMax) { nTotal += nCnt; nCnt++; } else { nTotal += nCnt; nCnt --; };
if(nCnt < nMax) { nTotal += nCnt; nCnt ++; } else { nTotal += nCnt; nCnt --; };
IF nCnt < nMax nTot = nTot + nCnt nCnt = nCnt + 1 ELSE nTot = nTot + nCnt nCnt = nCnt - 1 ENDIF
Select Case n Case 0 MsgBox ("Zero") ' Visual Basic exits the Select at the end of a Case. Case 1 MsgBox ("One") Case 2 MsgBox ("Two") Case Else MsgBox ("Default") End Select
switch(n) { case 0: System.out.println("Zero\n"); break; case 1: System.out.println("One\n"); break; default: System.out.println("?\n"); }
switch(n) { case 0: printf_s("Zero\n"); break; case 1: printf_s("One\n"); break; case 2: printf_s("Two\n"); break; default: printf_s("?\n");}
switch(n) { case 0: Console.WriteLine("Zero"); break; case 1: Console.WriteLine("One"); break; case 2: Console.WriteLine("Two"); break; default: Console.WriteLine("?"); break; }
switch(int(n)) { case 0 : print("Zero") break case 1 : print("One") break case 2 : print("Two") default : print("Default") }
DO CASE CASE n = 0 ? 'Zero' CASE n > 0 ? 'Pos' OTHERWISE ? 'Neg' ENDCASE
For n = 1 To 10 MsgBox("The number is " & n) Next For Each prop In obj prop = 42 Next prop
for(n=1; n<11;n++) System.out.println("The number is " + n);
for(int n=1; n<11; n++) printf_s("%d\n",n);
for (int i = 1; i <= 10; i++) Console.WriteLine("The number is {0}", i); foreach (int i in testArr) { Console.WriteLine(i); }
for (var n = 0; n < 10; n++) { print("The number is " + n) } for (var prop in obj) obj[prop] = 42
FOR n = 1 TO 10 ? n ENDFOR
Public Class BaseCls Public Z As Integer = 100 ' The element to be shadowed public Sub Test() System.Console.WriteLine("Test in BaseCls") End Sub End Class Public Class DervCls Inherits BaseCls Public Shadows Z As String = "*" ' The shadowing element. public Shadows Sub Test() System.Console.WriteLine("Test in DervCls") End Sub End Class Public Class UseClasses Dim BObj As BaseCls = New DervCls() ' DervCls widens to BaseCls. Dim DObj As DervCls = New DervCls() ' Access through derived class. Public Sub ShowZ() System.Console.WriteLine("Accessed through base class: " & BObj.Z) System.Console.WriteLine("Accessed through derived class: " & DObj.Z) BObj.Test() DObj.Test() End Sub End Class
public class BaseCls { public int Z = 100; // The element to be hidden public void Test() { System.Console.WriteLine("Test in BaseCls"); } } public class DervCls extends BaseCls { public String Z = "*"; // The hiding element public void Test() { System.Console.WriteLine("Test in DervCls"); } } public class UseClasses { BaseCls BObj = new DervCls(); // DervCls widens to BaseCls DervCls DObj = new DervCls(); // Access through derived class public void ShowZ() { System.Console.WriteLine("Accessed through base class: " + BObj.Z); System.Console.WriteLine("Accessed through derived class: " + DObj.Z); BObj.Test(); DObj.Test(); } }
#using <mscorlib.dll> #include <stdio.h> public __gc class BaseCls { public: int Z; // The element to be hidden void Test() { printf_s("Test in BaseCls\n"); } }; public __gc class DervCls : public BaseCls { public: char Z; // The hiding element void Test() { printf_s("Test in DervCls\n"); } }; public __gc class UseClasses { public: BaseCls * BObj; // DervCls widens to BaseCls DervCls * DObj; // Access through derived class void ShowZ() { BObj = new DervCls; BObj->Z = 100; DObj = new DervCls; DObj->Z = '*'; printf_s("Accessed through base class: %d\n", BObj->Z); printf_s("Accessed through derived class: %c\n", DObj->Z); BObj->Test(); DObj->Test(); } };
public class BaseCls { public int Z = 100; // The element to be hidden public void Test() { System.Console.WriteLine("Test in BaseCls"); } } public class DervCls : BaseCls { public new string Z = "*"; // The hiding element public new void Test() { System.Console.WriteLine("Test in DervCls"); } } public class UseClasses { BaseCls BObj = new DervCls(); // DervCls widens to BaseCls DervCls DObj = new DervCls(); // Access through derived class public void ShowZ() { System.Console.WriteLine("Accessed through base class: {0}", BObj.Z); System.Console.WriteLine("Accessed through derived class: {0}", DObj.Z); BObj.Test(); DObj.Test(); } }
class BaseCls { function get Z() : int { return 100 } // The element to be hidden } class DervCls extends BaseCls { hide function get Z() : String { return "*" } // The element to be hidden } class UseClasses { var BObj : BaseCls = new DervCls(); // DervCls widens to BaseCls var DObj : DervCls = new DervCls(); // Access through derived class function ShowZ() { print("Accessed through base class: " + BObj.Z); print("Accessed through derived class: " + DObj.Z); } } new UseClasses().ShowZ()
oBase = newobject ("BaseCls") oDerived = newobject ("DerivedCls") ?oBase.Z ?oDerived.Z DEFINE CLASS BaseCls AS SESSION PROTECTED Z && The element to be hidden outside of class Z = 100 ENDDEFINE DEFINE CLASS DerivedCls AS BaseCls HIDDEN Z && The hiding element from subclass Z = "*" ENDDEFINE
While n < 100 ' Test at start of loop. n += 1 ' Same as n = n + 1. End While '
while (n < 100) n++;
while(int n < 100) n++;
DO WHILE n < 100 n = n + n ENDDO
Public Sub ABC(ByVal y As Long) ' The argument Y is passed by value. ' If ABC changes y, the changes do not affect x. End Sub ABC(x) ' Call the procedure. ' You can force parameters to be passed by value, regardless of how ' they are declared, by enclosing the parameters in extra parentheses. ABC((x))
/* Note that there is no way to pass reference types (objects) strictly by value. You can choose to either pass the reference (essentially a pointer), or a reference to the reference (a pointer to a pointer).*/ // The method: void ABC(int x) { ... } // Calling the method: ABC(i);
testMethod(i,j);
ABC(i)
ABC(x)
DO ABC WITH (x)
Public Sub ABC(ByRef y As Long) ' The parameter y is declared by by referece: ' If ABC changes y, the changes are made to the value of x. End Sub ABC(x) ' Call the procedure.
// Prototype of ABC that takes a pointer to integer public int ABC( /** @ref */ int ref_y) { ... } // Calling the method: int y; ABC( y );
// Prototype of ABC that takes a pointer to integer. int ABC(long *py); ABC(&VAR); // Prototype of ABC that takes a reference to integer. int ABC(long &y); ABC(VAR);
/* Note that there is no way to pass reference types (objects) strictly by value. You can choose to either pass the reference (essentially a pointer), or a reference to the reference (a pointer to a pointer).*/ /* Note also that unsafe C# methods can take pointers just like C++ methods. For details, see <MSHelp:link keywords="vclrfUnsafe" TABINDEX="0">unsafe</MSHelp:link>. */ // The method: void ABC(ref int x) { ... } // Calling the method: ABC(ref i);
/* Reference parameters are supported for external objects, but not internal JScript functions. Use '&' to call by reference */ testObject.ByRefMethod(&x);
ABC(@x)
DO ABC WITH x
Try If x = 0 Then Throw New Exception("x equals zero") Else Throw New Exception("x does not equal zero") End If Catch err As System.Exception MsgBox("Error: " & Err.Description) Finally MsgBox("Executing finally block.") End Try
try{ if (x == 0) throw new Exception ("x equals zero"); else throw new Exception ("x does not equal zero"); } catch (Exception err){ if (err.getMessage() == "x equals zero") System.out.println(err.getMessage()); // Handle error here } finally { System.out.println("Executing finally block"); }
__try{ if (x == 0) throw new Exception ("x equals zero"); else throw new Exception ("x does not equal zero"); } __catch(Exception e) { Console.WriteLine("Caught Exception"); } __finally { Console.WriteLine("Executing finally block"); }
// try-catch-finally try { if (x == 0) throw new System.Exception ("x equals zero"); else throw new System.Exception ("x does not equal zero"); } catch (System.Exception err) { System.Console.WriteLine(err.Message); } finally { System.Console.WriteLine("executing finally block"); }
try { if (x == 0) throw "x equals zero" else throw "x does not equal zero" } catch(e) { print("Error description: " + e) } finally { print("Executing finally block.") }
TRY IF x = 0 THROW "x equals zero" ELSE THROW "x does not equal zero" ENDIF CATCH TO err MESSAGEBOX("Error description: " + err.UserValue) FINALLY MESSAGEBOX("Executing finally block.") ENDTRY
o = Nothing
stringVar = null;
o = nullptr; // when compiling with /clr
o = null;
o = undefined;
TestObj = null
TestObj = .NULL.
Dim dt as New System.DateTime(2001, 4, 12, 22, 16, 49, 844)
System.DateTime dt = new System.DateTime(2001, 4, 12, 22, 16, 49, 844);
System::DateTime dt = System::DateTime(2001, 4, 12, 22, 16, 49, 844);
var dt : System.DateTime = new System.DateTime(2001, 4, 12, 22, 16, 49, 844);
LOCAL ltDateTime AS DateTime ltDateTime = DATETIME(2001, 4, 12, 22, 16, 49)
' Define a generic type Public Class classMaker(Of t) ' Constrain a type parameter Public Class classMaker(Of t As IComparable) ' Create an object from a generic type Dim integerClass As New classMaker(Of Integer)
// Define a generic type // not supported // Constrain a type parameter // not supported // Create an object from a generic type testList<int> list = new testList<int>();
// Define a generic type generic <typename T> ref class testList { ... }; // Constrain a type parameter generic <typename T> where T : IComparable<T> ref class testList { ... }; // Create an object from a generic type testList<int>^ list = gcnew testList<int>();
// Define a generic type public class testList<T>{...} // Constrain a type parameter public class testList<T> where T : IComparable<T> // Create an object from a generic type testList<int> list = new testList<int>();
// Define a generic type // Constrain a type parameter // Create an object from a generic type
* Define a generic type * Constrain a type parameter * Create an object from a generic type