タグ

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

  • プログラミング言語における文字コードの話

    世の中がほぼUnicode前提になってめでたしめでたし。とはいかなかった現実の話。 String型でできる文字列処理とか、ソースコード自体、特に識別子で使える文字とか。 軽くおさらい: Unicode まあいろんなところでいろんな人が書いてると思うのでさらっと概要だけ。 Unicodeは、元々、「65,536文字あれば十分だろ」とかいう幻想の元、2バイト固定長の文字コードとして作られていました。 もちろん足りなくて、ビット数を拡張。基が2バイトのままでこの拡張した分を取り扱えるようにしたのが今のUTF-16で、拡張分は2文字分(4バイト)を使って表現。 この、2文字分使って1文字を表すやつのことをサロゲートペア(surrogate pair: 代理対)と呼びます。 あと、ASCII文字も2バイトになるのを欧米人が嫌って、ASCII文字はASCIIコードのまま、逆に漢字・ひらがな・カタカナ

    プログラミング言語における文字コードの話
  • ピックアップRoslyn 8/27: What’s New in C# 7.0

    ブログ: What’s New in C# 7.0 Roslynリポジトリ内の話じゃないんですけど、Preview 4でのC# 7の動きについて、Madsがブログ書いてました。 What’s New in C# 7.0 そういや、この文章だと「C# 7.0」。 昔ちょっとブログ書きましたけど、最近って小数点以下のバージョン付けないんですけど。 C# 7はずっと「7」ばっかりみてたけど、久々に「7.0」表記。 この辺り、最近、C#チーム内でも統一してないなぁ… C# 7.0の内容 このブログの内容的には、 先日僕もブログで書いたのとそんなに差がないんで詳細は省略。 Visual Studio "15" Preview 4 差分というか、僕が書いた方で漏れてるのは、以下の内容: out varのwildcard out varと一緒に、*、要するに、受け取る必要のない out 引数を無視するた

    ピックアップRoslyn 8/27: What’s New in C# 7.0
  • C# 6, C# 7

    最近、C#がらみの原稿仕事を依頼されたとき、よくある校正が「C# 6になってますけども、6.0ですよね?」。 回答は「いえ、C# 6が正式です」。 C#のバージョン番号、6以降は .0 を付けないのが正式っぽいんですよね。実は。 C# 1.0 C# 1.1 (#lineディレクティブと/** doc comment */が追加されただけ。1.1なのか1.2なのかも割かしよくわからず) C# 2.0 C# 3.0 C# 4.0 C# 5.0 C# 6 C# 7 という感じ。 実質的に小数点以下使ってない(1.1とか存在感ない)し、要らないですよね。という感じ。 これに気づいたの、結構後になってからなんで、うちのC#によるプログラミング入門にも「C# 6.0」って表記が結構残ってたんですが、今しがた整理。ブログ以外からは6.0が消えたはず。 実はよくわからない ただ、C# 7の次がC# 7.1

    C# 6, C# 7
  • ++C++; //未確認飛行 C++

    using static System.Console; class Welcome { /// <summary> /// saying hello to all visitors and welcome. /// </summary> /// <param name="args">visitors</param> public static void Main(string[] args) { foreach(string visitor in args) { WriteLine($"Hello {visitor}."); } WriteLine("Welcome to my web page."); } } C# によるプログラミング入門 コンピュータの基礎知識 アルゴリズムとデータ構造 ブログ ようこそ ++C++; へ。 C#・情報工学を中心に勉強用ページとブログを載せています。

    ++C++; //未確認飛行 C++
  • .NET Coreへの移植

    twitterで流れてきてて、気になったやつ。 Porting to .NET Core 内容的には、 フィードバック募集中なのでお願いします .NET Coreは今、ASP.NET、UWP、コンソール アプリに使えるけども、.NET Frameworkからの移植のモチベーションはそれぞれ何か .NET Framework と .NET Coreの関係・差分 意図して.NET Coreには取り込まなかったものがちらほらあるから注意 .NET Core化するかどうか、単純に時間的な不足で検討してないものもちらほら 特にフィードバックほしいのはここ。ほしいかどうか、優先度付けしたい 移植にあたってのコツ みたいなの。 以下、さらっと概要。 何を移植するか ASP.NET 移植する理由: .NET Coreならクロスプラットフォーム。MacLinuxで動く マシン全体に対するインストールじゃな

    .NET Coreへの移植
  • Java 開発者向けチート シート

    いわゆる goto 文(無条件ジャンプ)。 Java はキーワードの予約のみで、実際は機能を持っていません。

    Java 開発者向けチート シート
  • インデクサー(C# によるプログラミング入門)

    概要 C# で利用できる基型の1つに配列があります。 配列では i 番目の要素を読み書きする際、 a[i] というように [] を用います。 「演算子のオーバーロード」でも述べましたが、 ユーザー定義型の理想は、組込み型とまったく同じように扱えることです。 そこで、C# では、 ユーザー定義型が配列型と同様に [] を用いた要素の読み書きが行えるようにインデクサーという仕組みが用意されています。 インデクサーを定義することで、ユーザー定義型のオブジェクトでも、 配列と同じような a[i] という形での要素の読み書きができるようになります。 ポイント 組み込み型(int や string など)とユーザー定義型(クラスや構造体)の区別をなくそう。 ユーザー定義型にも、配列っぽく[]を使ったインデックスアクセスを定義できます(インデクサー)。 書き方は、T this [int index]

    インデクサー(C# によるプログラミング入門)
  • プロパティ

    概要 プロパティ(property:所有物、特性)とは、JavaC++にはない(Visual Basicにはある)機能で、 クラス外部から見るとメンバー変数のように振る舞い、 クラス内部から見るとメソッドのように振舞うものです。 JavaC++がこの機能を持ってないことからも分かると思いますが、 プロパティはオブジェクト指向言語に必須の機能ではありません。 しかし、これから説明していくように、あると便利なものです。 ポイント プロパティ: 中(実装側)からはメソッドのように扱え、外(利用側)からはメンバー変数のように見えるもの。 実装の隠蔽(カプセル化)の原則を崩すことなく、 アクセサー関数の煩雑さを解消。 プロパティとは 「実装の隠蔽」で、 メンバー変数はクラス外部から直接アクセス出来ないようにして、 オブジェクトの状態の変更はすべてメソッドを通して行うべきだと書きました。 これを忠

    プロパティ
  • 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の全角キーワード
    orangeclover
    orangeclover 2015/11/14
    そうなんだ。 『Visual Basicでは、BASIC時代からずっとですが、アルファベットの大文字と小文字を区別しないことは皆さまもご存知かと思われます。 で、実は、大文字小文字だけじゃなくて、半角全角も区別しないという。
  • 1