タグ

ブックマーク / ufcpp.net (4)

  • ピックアップRoslyn 2/23: Shapes and Extensions

    久しぶりに面白そうな話が。 Exploration: Shapes and Extensions #164 2つほど原案があって、組み合わせて結構よさげな機能案ができたので詳細を詰めていきたいという感じの話。 元になっているのは以下の2つ。 Extension everything メソッドだけじゃなくて、プロパティとかインデクサーとかあらゆるものを「拡張」定義したい 静的メソッドも(インスタンスじゃなくて型に対して)「拡張」したい インターフェイスの後刺しとかもしたい Type Classes Haskellの型クラス的なもの、 .NET ランタイムに手を入れなくてもちょっとした「値型ジェネリック」を使ったトリックで実現できそうという話 MS Researchの人と、インターンで来た人の成果っぽい 型クラスってのはどういうのかというと: 静的メソッドやコンストラクターを含めて、その型が持

    ピックアップRoslyn 2/23: Shapes and Extensions
    theatrical
    theatrical 2017/02/28
    型クラス来るとか書いてあるぞ
  • Visual Basicの全角キーワード

    Visual Basicでは、BASIC時代からずっとですが、アルファベットの大文字と小文字を区別しないことは皆さまもご存知かと思われます。 で、実は、大文字小文字だけじゃなくて、半角全角も区別しないという。以下のコード、コンパイルして実行することもできるし、Visual Studio上ではちゃんと、Moduleとかの部分が青色(キーワードの色)で表示されます。 Module Module1 Sub Main() Dim x = 10 Console.WriteLine(x) End Sub End Module まあ、今のVisual Studio上では、全角文字でキーワードを打つと、自動補完で打ったそばから半角CamelCaseに変換されていくんで、自動補完に直されるたびにCtrl+Zで元に戻したりしないとこのソースコードを作れなかったりはするんですが。 もちろんRoslynでもいまだ

    Visual Basicの全角キーワード
    theatrical
    theatrical 2015/11/10
    こんなコードに出くわしたら怒り狂うと思う
  • ピックアップRoslyn 10/30

    Proposal: extension everything #6136 Proposal: extension everything #6136 コンセプト自体は前々から出ているやつの具体的な文法案。拡張メソッド以外にも、プロパティとかその他のメンバーも拡張で足せたり、静的メソッドとかの追加もできたりさせたいという話。 結構争点多くてまだまだまとまらなさそう。 extension class A みたいに拡張したいクラスだけ指定するか、extension class AExtension : A みたいに、拡張メソッドを定義するクラス名を書くか 拡張側にインスタンスメンバーを持てるべきかどうか。持てるようにするにはConditionalWeakTableみたいなパフォーマンスに悪影響のある仕組みを使わざるを得なくて微妙 既存の拡張メソッドみたいに、静的メソッドの引数として明示的にインスタ

    ピックアップRoslyn 10/30
    theatrical
    theatrical 2015/11/02
    Sequence Expressions最近見た気がすると思ったら、ecmascriptのdo expressionsだった
  • [雑記] GUI と非同期処理

    概要 (書きかけ) 「非同期処理」の話とからめて、 GUI アプリケーション開発と非同期処理の話。 GUI とディスパッチャー (書きかけ、清書時は別ページにするかも) 0.5秒固まったら「使いにくい」、3秒固まったら「バグだ」、10秒固まったら「パソコンが壊れた」と言われる。 ↑ 大げさかもしれないけど、かなり真実。 ・メッセージ ループ クリックとかキー ダウンのイベントは一度キューにたまってる(メッセージ ポンプ) ループでキューを見ては GUI の処理してるものがある。 WinForms とか WPF では隠ぺいされてるけども、内部的には、 while (GetMessage(ref msg, null, 0, 0)) { TranslateMessage(ref msg); DispatchMessage(ref msg); } DispatchMessage の内部で、最終的に

    [雑記] GUI と非同期処理
  • 1