• Boo Vs C# 语言对比 6


     keywords

    Boo syntax

    C# equivalent

    class Car:

    pass

    pass keyword

    public class Car

    {

    }

    employee is null

    employee == null

    "foo" is "bar"

    employee isa Manager

    ReferenceEquals("foo","bar")

    employee is Manager

    employee is not null

    employee != null

    not employee.IsTemporary

    !employee.IsTemporary

    employee is not null and

    employee isa Manager

    employee != null &&

    employee is Manage

    employee isa Manager or not

    employee.IsTemporary

    (employee is Manager) ||

    (!employee.IsTempor

    cast(int, variable)

    (int)variable

    name = variable as string

    string name = variable as string;

    typeOfString = typeof(string)

    Type typeOfString = typeof(string);

    typeOfString = string

    Type typeOfString = typeof(string);

    Conditionals

    if lives == 0:

    print "game over"

    if (lives == 0)

    Console.WriteLine("game over");

    if lives == 0:

    print "game over"

    game.Finish()

    if( lives == 0)

    {

    Console.WriteLine("game over");

    game.Finish();

    }

    if not lives:

    print "game over"

    if (lives == 0)

    Console.WriteLine("game over");

    unless lives:

    print "game over"

    if (lives == 0)

    Console.WriteLine("game over");

    print "game over" unless lives

    print "game over" if lives == 0

    if (lives == 0)

    Console.WriteLine("game over");

    if lives == 0:

    print "game over"

    else:

    print "carry on"

    if (lives == 0)

    Console.WriteLine("game over");

    else

    Console.Writeline("carry on");

    if lives == 0:

    print "game over"

    elif lives == 1:

    print "Last life"

    else:

    print "carry on"

    if (lives == 0)

    Console.WriteLine("game over");

    else if (lives == 1)

    Console.WriteLine("last life")

    else

    Console.Writeline("carry on");

    Loops and iterations

    while lives != 0:

    PlayRound()

    while(lives!=0)

    PlayRound();

    for i in range(0,10):

    print i

    for(int i=0;i<10;i++)

    Console.WriteLine(i);

    for user in users:

    print user.Name

    for user in users:

    if user.Name is null:

    continue

    print user.Name

    foreach(User user in users)

    Console.WriteLine(user.Name);

    foreach(User user in users)

    {

    if(user.Name == null)

    continue;

    Console.WriteLine(user.Name);

    }

    index = 0

    for user in users:

    break if index > 10

    print user.Name

    index += 1

    int index = 0;

    foreach(User user in users)

    {

    if(index > 10)

    break;

    Console.WriteLine(user.Name);

    index += 1;

    }

    while ie.Busy:

    Thread.Sleep(50ms)

    while( ie.Busy)

    Thread.Sleep(50);

    Type declarations

    class Car:

    wheels as int

    defStartEngine():

    pass

    public class Car

    {

    protected int wheels;

    public void StartEngine()

    {

    }

    }

    internal class Car:

    pass

    internal class Car {}

    struct Point:

    X as int

    Y as int

    public struct Point

    {

    public int X;

    public int Y;

    }

    class Truck(Car):

    pass

    public class Truck : Car

    {

    }

    class Car(IDisposable):

    def Dispose():

    pass

    public class Car : IDisposable

    {

    public void Dispose()

    {

    }

    }

    enumTddStages:

    Red

    Green

    Refactor

    public enumTddStages

    {

    Red,

    Green,

    Refactor

    }

    Methods, properties, and control structures

    def Start():

    pass

    public void Start()

    {

    }

    def Start(async as bool):

    pass

    public void Start(boolasync)

    {

    }

    def Start(async as bool) as

    WaitHandle:

    raise NotImplementedException()

    public WaitHandle Start(boolasync)

    {

    throw new

    NotImplementedException();

    }

    defGetInteger():

    return 1

    public intGetInteger()

    {

    return 1;

    }

    defSetItem(key,val):

    pass

    public void SetItem(object key, object val)

    {

    }

    defVarArgs(*args as (object)):

    pass

    VarArgs(1, "foo")

    public void VarArgs(params object[]

    args)

    {

    }

    Name:

    get:

    return "Boo"

    public string Name

    {

    get { return "C#"; }

    }

    Email:

    get:

    return email

    set:

    email = value

    Email:

    get: return email

    set: email = value

    public string Email

    {

    get { return email; }

    set { email = value; }

    }

    [property(Email)]

    email as string

    public string Email { get; set; }

    xml = XmlDocument()

    XmlDocument xml = new XmlDocument()

    emp = Employee(Name: "foo", Id: 15)

    varemp = new Employee{ Name = "foo",

    Id = 15};

    class Car():

    def constructor():

    print "Car created!"

    public class Car

    {

    public Car()

    {

    Console.WriteLine("Car

    created!");

    }

    }

    class Car():

    def destructor():

    print "died"

    public class Car

    {

    public ~Car()

    {

    Console.WriteLine("died");

    }

    }

    raise NotImplementedException()

    throw new NotImplementedException();

    raise "error happened"

    throw new Exception("error happened");

    try:

    # do something

    except:

    print "error happened"

    try

    {

    // do something

    }

    catch

    {

    Console.WriteLine("error

    happened");

    }

    try:

    # do something

    except e as SoapException:

    print e.Detail

    except e:

    print e

    try

    {

    // do something

    }

    catch(SoapException e)

    {

    Console.WriteLine(e);

    }

    catch(Exception e)

    {

    Console.WriteLine(e);

    }

    try:

    # do something

    except e:

    print e

    ensure:

    print "done"

    try

    {

    // do something

    }

    catch(Exception e)

    {

    Console.WriteLine(e);

    }

    finally

    {

    Console.WriteLine("done");

    }

    try:

    # do something

    except e:

    print e

    raise

    try

    {

    // do something

    }

    catch(Exception e)

    {

    Console.WriteLine(e);

    throw;

    }

    save.Click += do(sender,e):

    print "Clicked"

    save.Click += delegate(

    object sender,

    EventArgs e

    )

    {

    Console.WriteLine("Clicked");

    }

    save.Click += { print "Clicked" }

    save.Click += (sender, e) =>

    Console.WriteLine("Clicked");

    myList.Find( { i | i > 5 })

    myList.Find(delegate(int i)

    {

    return i> 5;

    });

    namespace Foo.Bar.Baz

    class Foobar:

    pass

    namespace Foo.Bar.Baz

    {

    public class Foobar

    {

    }

    }

    self.name = "foo";

    this.name = "foo";

    super.name = "foo";

    base.name = "foo";

    # single line comment

    // and this is one as well

    /*

    And here is a multi

    line comment

    */

    // single line comment

    /*

    Multi line comment

    */

    Useful macros

    assert user is not null

    Debug.Assert( user != null, "user is

    not null"

    print "foo"

    Console.WriteLine("foo")

    using db = RhinoConnection():

    pass

    using(RhinoConnectiondb = new

    RhinoConnection())

    {

    }

    lock syncLock:

    #code under lock

    lock(syncLock)

    {

    // code under lock

    }

  • 相关阅读:
    架构师是怎么炼成的?
    互联网架构
    软件质量属性之可测试性
    用百度 AI Studio完成猫狗识别
    【2021.02.22】智能家居之门窗传感器与人体传感器
    【2021.02.21】逻辑斯蒂回归、处理多维特征的输入
    【2020.02.20】树莓派3B安装home assistant全过程
    【2020.02.18】反向传播、线性回归
    【2021.02.17】线性模型、梯度下降算法
    【2021.02.16】pytorch导论
  • 原文地址:https://www.cnblogs.com/2018/p/2623630.html
Copyright © 2020-2023  润新知