Skip to content

Tea 与 C# 的不同点

xuld edited this page Mar 14, 2014 · 6 revisions
C# 代码 等效的 Tea 代码 不同的原因
using 名字空间; import 包; 叫法不同
namespace A{} module A; // 一个文件只能用一次
extern alias s; s::System.IO.File; import module as s; s.File
internal (无)
A a = new A(1) {p = 4, t = 2}; A a = new A(1)..p = 4..t = 2;
foreach(int item in arr){
        }
    </td>
    <td>
        for(int item in arr){
        
        }
    </td>
    <td></td>
</tr>
<tr>
    <td>
        switch { case 1: case 2: {break;} default: {break;} }
    </td>
    <td>
        switch { case 1, 2: {} case else: {}  }
    </td>
    <td></td>
</tr>
<tr>
    <td>
        using(A a = new A()){}
    </td>
    <td>
        with(A a = new A()) {}
    </td>
    <td></td>
</tr>
<tr>
    <td>
        fixed(int* p = &r){ }
    </td>
    <td>
        with(int* p = &r){ }
    </td>
    <td></td>
</tr>
<tr>
    <td>
        var a = fn();     
        dynamic b = 4;
    </td>
    <td>
        var a = fn();      
        object b = 4;
    </td>
    <td></td>
</tr>
<tr>
    <td>
        int? a = null;        
        int? b = a ?? 4;
    </td>
    <td>
        (无) 
    </td>
    <td></td>
</tr>
<tr>
    <td> 
        int[] a = {1, 2, 3};    
        var list = new List<int>{1, 2, 3};
    </td>
    <td>
        int[] a = [1, 2, 3];     
        var list = [1, 2, 3] as List<int>;
    </td>
    <td></td>
</tr>
<tr>
    <td>
        var fn = (e) => { return e + e  };
    </td>
    <td>
        var fn = (e) -> { return e + e };
    </td>
    <td></td>
</tr>
<tr>
    <td>
        class QAttribute : Attribute {}       
    
        class A {  
            [q]
            int aa;    
        }
    </td>
    <td>    
        lass QAnnotation : Annotation {}       
    
        class A {  
            @q
            int aa;    
        }     
    </td>
    <td></td>
</tr>
<tr>
    <td>
        static class AExtensions {      
            void fn(this A a);     
        }   
    </td>
    <td>
        extend A {     
            void fn();     
        }    
    </td>
    <td></td>
</tr>
<tr>
    <td>
        class A{     
            public static A operator +(A a, A b) {}     
            public static explicit operator B(A a) {}    
        }   
    </td>
    <td>
        class A{    
            A this +(A b) {}     
            as B() {}    
        }
    </td>
    <td></td>
</tr>