roslyn

24
Roslyn をををををを

Transcript of roslyn

Page 1: roslyn

Roslyn を試してみた

Page 2: roslyn

「 Roslyn当たりかなぁ。。」と書いておきながら、実はまだ触ったことがない。

なので最後の一文は少し逃げれる余地を残してみた。

とある Faceb○○k

Page 3: roslyn

とある Faceb○○k の返信

逃げられなくなったので頑張って調べました。

Page 4: roslyn

?

CSC.exe / VBC.exe

??CS/VB Assembly

Black Box / No API

Page 5: roslyn

Roslyn

White Box / API

CS/VB Assembly

Page 6: roslyn

• コード解析とかリファクタリングとか• C# Script とか• REPL(Read Eval Print - Loop) とか• Visual Studio への統合とか• メタプログラミングとか DSL とか言語拡張と

Page 7: roslyn
Page 8: roslyn

• コード解析とかリファクタリングとか• C# Script とか• REPL(Read Eval Print - Loop) とか• Visual Studio への統合とか• メタプログラミングとか DSL とか言語拡張と

か現状は入ってない。

Page 9: roslyn

でもやってみた。

Page 10: roslyn

public string Name { get; set; }

Page 11: roslyn

public string Name { get; set; }

public Program(){ this.Name = "k-maru";}

Page 12: roslyn

public string Name { get; set; } = "k-maru";

Page 13: roslyn

やってみた。

Page 14: roslyn
Page 15: roslyn

public string Name { get; set; }

Page 16: roslyn

public string Name { get; set; } public string Name { get; set; } = "k-maru";

Page 17: roslyn

public string Name { get; set; } = "k-maru";

private string __name__ = "k-maru";

public string Name { get { return __name__; } set { __name__ = value; }

}

Page 18: roslyn

Demo

Page 19: roslyn

public string Name { get; set; } = "k-maru";

private string __name__ = "k-maru";

public string Name { get { return __name__; } set { __name__ = value; }

}

Page 20: roslyn

Roslyn.Compilers.CSharp.SyntaxRewriter

Page 21: roslyn
Page 22: roslyn

想像してみよう

Page 23: roslyn

public depedency string Name { change;} public observable string Name {

get; set;}

public void SetCommonColumn({string UpdUser, DateTime UpdDate} table) { table.UpdUser = "k-maru"; table.UpdDate = DateTime.Now();}

private var names = new List<string>();

Page 24: roslyn

ご清聴ありがとうございました。