schwarzの雑記 このページをアンテナに追加 RSSフィード

07/07/01 (Sun)7月1日の雑記

[] 7月1日の雑記 - schwarzの雑記 を含むブックマーク

C#とかVB.NETとかには、予約語との衝突を避ける記法があるそうです。C#の場合は、最初に @ をつけます。例えば、「どうしても"class"という変数名を使いたい」という場合は、"@class" とすることで実現できます。

これを使うと、下記のような訳の分からんプログラムが作れます。

using System;
using @namespace;

namespace @namespace {

    struct @struct {
        public int @return(string @string, short @short) {
            return @string.GetHashCode() + @short;
        }
    }

    class @class {

        static void Main(string[] @params) {

            @struct @struct = new @struct();

            int @int = @struct.@return("hoge", 123);

            Console.WriteLine(@int);  
        }
    }
}

さしものはてなも予約語と看做して緑にしてくれちゃっていますね。


VBだとたまに使う場面があるらしいけど、C#ではまず一生お目にかかることは無さそうです。

エフィフエフィフ2007/08/14 21:04Second RPGを新設計して作り直したImprovedを公開し始めたので連絡に。
http://gkf.sakura.ne.jp/second/

LarblatryLarblatry2018/04/17 14:52Best Buy Isotretinoin Skin Health No Doctor London Cialis Generico Sin Receta <a href=http://cialibuy.com>cialis 5mg best price</a> Nolvadex 20 Mg Generic Cialis Sales On Amazon Prime

MatcireMatcire2018/07/07 13:00Levitra Comprare Cialis En 24 Horas <a href=http://brandciali.com>cialis</a> Amoxicillin Cause Severe Diarrhea

WilliamnexWilliamnex2019/02/02 09:57microsoft office specialist excel expert certification
what kind of doctor prescribes cialis
<a href=https://kellyannehulme.com>20 mg cialis</a>
is there a generic cialis available
price for cialis 10mg
https://greatwinesgrandhouses.com
cheap prices for cialis
young democratic socialists
<a href=https://kellyannehulme.com>buy cialis</a>
cialis generique paypal
cialis kanada
https://greatwinesgrandhouses.com

ArnoldFoeksArnoldFoeks2019/02/05 18:03product team cialis getting ready to market case solution
real cialis online pharmacy
<a href="http://xcialisxx.com">buy cialis</a>
cialis osterreich
generic cialis with mastercard
<a href="http://cialistlm.com">Buy Cheap Cialis</a>
cialis jerusalem
adderall mixed with cialis
<a href="http://xcialisxx.com">Buy Cheap Cialis</a>

DouglasHooniDouglasHooni2019/02/08 06:48http://sdfgdfsgfdhfgjkur.com/
<a href=http://sdfgdfsgfdhfgjkur.com/#>cialis 20 mg costo in farmacia</a>
<a href="http://sdfgdfsgfdhfgjkur.com/#">co lepsze viagra czy cialis</a>

DouglasHooniDouglasHooni2019/08/20 18:15<a href="#"></a> <a href="#"></a>
<a href=#></a>

<a href=#></a>

<a href="#"></a>

<a href="#"></a>
<a href=""></a>

DouglasHooniDouglasHooni2019/08/20 21:28<a href="#"></a> <a href="#"></a>
<a href=#></a>

<a href=#></a>

<a href="#"></a>

<a href="#"></a>
<a href=""></a>

DouglasHooniDouglasHooni2019/08/21 00:49<a href="#"></a> <a href="#"></a>
<a href=#></a>

<a href=#></a>

<a href="#"></a>

<a href="#"></a>
<a href=""></a>

DouglasHooniDouglasHooni2019/08/21 04:01<a href="#"></a> <a href="#"></a>
<a href=#></a>

<a href=#></a>

<a href="#"></a>

<a href="#"></a>
<a href=""></a>

DouglasHooniDouglasHooni2019/08/21 07:14<a href="#"></a> <a href="#"></a>
<a href=#></a>

<a href=#></a>

<a href="#"></a>

<a href="#"></a>
<a href=""></a>

DouglasHooniDouglasHooni2019/08/21 10:25<a href="#"></a> <a href="#"></a>
<a href=#></a>

<a href=#></a>

<a href="#"></a>

<a href="#"></a>
<a href=""></a>

DouglasHooniDouglasHooni2019/08/21 13:39<a href="#"></a> <a href="#"></a>
<a href=#></a>

<a href=#></a>

<a href="#"></a>

<a href="#"></a>
<a href=""></a>

DouglasHooniDouglasHooni2019/08/21 16:48<a href="#"></a> <a href="#"></a>
<a href=#></a>

<a href=#></a>

<a href="#"></a>

<a href="#"></a>
<a href=""></a>

DouglasHooniDouglasHooni2019/08/21 19:58<a href="#"></a> <a href="#"></a>
<a href=#></a>

<a href=#></a>

<a href="#"></a>

<a href="#"></a>
<a href=""></a>

EllInfideEllInfide2019/11/08 09:03Canadian Pharmacy 24h Catalog Ciprofloxacin 500mg Buy Online Safe Cheap Cod Only Macrobid Medicine Miami <a href=http://cialusa.com>generic cialis overnight delivery</a> Where Can I Buy Lasix Water Pills Online Mechanism Benzene To Amoxicillin Hydrochlorothiazide Real Tablet

Buy CialisBuy Cialis2019/12/03 19:51is cialis generic
https://cialisfavdrug.com
free cialis medication for providers
<a href=" https://cialisfavdrug.com ">what is cialis</a>

DanielDrillDanielDrill2019/12/05 03:10brookshire's pharmacy
<a href=" http://canadapharmxpd.com# ">pharmacy degree</a>
walgreens pharmacy hours near me <a href=http://canadapharmxpd.com#>professional pharmacy pottstown pa</a>

JosephtwiltJosephtwilt2019/12/05 05:32cvs pharmacy target <a href=" http://canadapharmxpd.com ">hyvee pharmacy centerville iowa</a>
walgreens pharmacy open 24 hours

MickeybugMickeybug2019/12/05 12:01sams pharmacy
<a href=" http://canadapharmxpd.com ">costco pharmacy</a>
martin's pharmacy
<a href=http://canadapharmxpd.com>hometown pharmacy wisconsin</a>

DevonFerceDevonFerce2019/12/05 12:43raley's pharmacy
<a href=" http://canadapharmxpd.com# ">giant pharmacy careers</a>
kaiser permanente pharmacy hours <a href=http://canadapharmxpd.com#>hy vee pharmacy hours</a>

MickeybugMickeybug2019/12/05 14:48diamondback pharmacy
<a href=" http://canadapharmxpd.com ">kroger pharmacy</a>
carezone pharmacy
<a href=http://canadapharmxpd.com>econo pharmacy springdale</a>

DevonFerceDevonFerce2019/12/05 15:09king soopers pharmacy
<a href=" http://canadapharmxpd.com# ">pharmacy discount cards</a>
beaverton pharmacy medical supplies canyon rd <a href=http://canadapharmxpd.com#>freds pharmacy</a>

ArthurdigArthurdig2019/12/05 15:19harris teeter pharmacy <a href=" http://canadapharmxpd.com ">giant eagle pharmacy macedonia ohio</a>
<a href=http://canadapharmxpd.com>service pro pharmacy in milton florida</a> pharmacy norristown pa

DevonFerceDevonFerce2019/12/05 17:40canadian online pharmacy cialis
<a href=" http://canadapharmxpd.com# ">walmart pharmacy refill online</a>
canadian pharmacy king <a href=http://canadapharmxpd.com#>reputable online pharmacy</a>

WilliamjedWilliamjed2019/12/05 18:02canada drugs review <a href=" http://canadapharmxpd.com ">costco online pharmacy</a>
<a href=http://canadapharmxpd.com>canadian pharmacy cialis</a> best online pet pharmacy

DevonFerceDevonFerce2019/12/05 20:07canadian online pharmacy viagra
<a href=" http://canadapharmxpd.com# ">online indian pharmacy</a>
reputable canadian online pharmacy <a href=http://canadapharmxpd.com#>legitimate mexican pharmacy online</a>

DanielDrillDanielDrill2019/12/05 20:23canadian pharmacy review
<a href=" http://canadapharmxpd.com# ">online pharmacy hydrocodone caempowxgywcs</a>
us pharmacy online <a href=http://canadapharmxpd.com#>humana pharmacy online nbdiayvpwkkpg</a>

JosephtwiltJosephtwilt2019/12/05 20:32pharmacy tech programs online <a href=" http://canadapharmxpd.com ">trusted online pharmacy</a>
online pharmacy no prior prescription

ArthurdigArthurdig2019/12/05 20:44mexican online pharmacy <a href=" http://canadapharmxpd.com ">non prescription online pharmacy qlooujymtyxpa</a>
<a href=http://canadapharmxpd.com>canadian pharmacy generic viagra yabncvaqgpqpn</a> online pharmacy canada

ArthurdigArthurdig2019/12/05 23:16mail order prescription drugs from canada <a href=" http://canadapharmxpd.com ">canada drugs coupon qvsxmseddugif</a>
<a href=http://canadapharmxpd.com>online pharmacy oyzwlzvshnypl</a> online pharmacy canada

MickeybugMickeybug2019/12/05 23:26cvs pharmacy online refill
<a href=" http://canadapharmxpd.com ">canadian pharmacy online cialis</a>
india online pharmacy
<a href=http://canadapharmxpd.com>walmart pharmacy order online</a>

MickeybugMickeybug2019/12/06 02:18discount pharmacy online
<a href=" http://canadapharmxpd.com ">online pharmacy hydrocodone</a>
buy hcg online pharmacy
<a href=http://canadapharmxpd.com>reputable online pharmacy</a>

ArthurdigArthurdig2019/12/06 04:33canadian pharmacy reviews <a href=" http://canadapharmxpd.com ">pharmacy tech school online kymvlgqksrted</a>
<a href=http://canadapharmxpd.com>u s a online pharmacy tnrjttlaljesu</a> walmart pharmacy refill online

MickeybugMickeybug2019/12/06 07:51viagra online canadian pharmacy
<a href=" http://canadapharmxpd.com ">india pharmacy online</a>
pharmacy online
<a href=http://canadapharmxpd.com>online pharmacy free viagra samples</a>

ArthurdigArthurdig2019/12/06 09:53canadian pharmacy viagra <a href=" http://canadapharmxpd.com ">canada pharmacy online trggsasddgrcx</a>
<a href=http://canadapharmxpd.com>uk online pharmacy bbrqtilaqecji</a> legitimate mexican pharmacy online

MickeybugMickeybug2019/12/06 10:34canadian pharmacies
<a href=" http://canadapharmxpd.com ">cvs online pharmacy</a>
pharmacy mall online reviews
<a href=http://canadapharmxpd.com>canadian pharmacy meds</a>

WilliamjedWilliamjed2019/12/06 11:19online compounding pharmacy <a href=" http://canadapharmxpd.com ">trusted online pharmacy reviews</a>
<a href=http://canadapharmxpd.com>online pharmacy</a> cheap viagra online canadian pharmacy

ArthurdigArthurdig2019/12/06 12:32online pharmacy without scripts <a href=" http://canadapharmxpd.com ">roman online pharmacy reviews czkojvpxgakxa</a>
<a href=http://canadapharmxpd.com>online canadian pharmacy hwofywhwypgfa</a> online pharmacy school

MickeybugMickeybug2019/12/06 13:22pharmacy tech online course
<a href=" http://canadapharmxpd.com ">canada drugs online review</a>
best canadian pharmacy
<a href=http://canadapharmxpd.com>online pharmacy school</a>

ArthurdigArthurdig2019/12/06 15:14humana pharmacy online <a href=" http://canadapharmxpd.com ">precription drugs from canada fgwfuplmgauew</a>
<a href=http://canadapharmxpd.com>legitimate online pharmacy rbfayehhtggiq</a> pharmacy mall online reviews

MickeybugMickeybug2019/12/06 16:04indian pharmacy online
<a href=" http://canadapharmxpd.com ">canada drugs coupon code</a>
oxfordhealth online pharmacy
<a href=http://canadapharmxpd.com>canada drugs</a>

StanleyLokStanleyLok2019/12/06 22:40pharmacy tech class online <a href=" http://canadapharmxpd.com ">non prescription online pharmacy</a>
<a href=http://canadapharmxpd.com>online pharmacy school</a> cheap online pharmacy

MickeybugMickeybug2019/12/07 03:21canadian pharmacies
<a href=" http://canadapharmxpd.com ">canadian online pharmacy reviews</a>
pharmacy online
<a href=http://canadapharmxpd.com>mexico pharmacy online</a>

StanleyLokStanleyLok2019/12/07 03:50online pharmacy without scripts <a href=" http://canadapharmxpd.com ">silkroad online pharmacy</a>
<a href=http://canadapharmxpd.com>uk online pharmacy</a> u s pharmacy online

WilliamjedWilliamjed2019/12/07 05:01online pharmacy review <a href=" http://canadapharmxpd.com ">online pharmacy review</a>
<a href=http://canadapharmxpd.com>pharmacy tech online</a> shopko online pharmacy

tuthJughtuthJugh2019/12/07 05:44roman online pharmacy reviews modafinil online pharmacy

DanielDrillDanielDrill2019/12/07 06:07walmart pharmacy online
<a href=" http://canadapharmxpd.com# ">online pharmacy adderall uvvakmpodyjih</a>
walmart pharmacy order online <a href=http://canadapharmxpd.com#>mexican online pharmacy egmxpgzzigmef</a>

ArthurdigArthurdig2019/12/07 06:14humana pharmacy otc order online <a href=" http://canadapharmxpd.com ">online pharmacy reviews 2019 ebomlqgkwsvkj</a>
<a href=http://canadapharmxpd.com>canadian pharmacy generic viagra tdgbwzdlmclap</a> reputable online pharmacy

StanleyLokStanleyLok2019/12/07 06:27walgreens online pharmacy <a href=" http://canadapharmxpd.com ">pharmacy tech programs online</a>
<a href=http://canadapharmxpd.com>u s a online pharmacy</a> online pharmacy without prescription

MickeybugMickeybug2019/12/07 08:26online mexican pharmacy
<a href=" http://canadapharmxpd.com ">canadian pharmacy ratings</a>
mexico pharmacy online
<a href=http://canadapharmxpd.com>legal online pharmacy reviews</a>

JamesCagueJamesCague2019/12/07 13:00viagra toletance <a href=" https://viagrawithoutdoctorspres.com# ">what drug in viagra helps breathing</a>
us pharmacy viagra

HarrySnireHarrySnire2019/12/07 13:19brother takes viagra <a href=" https://viagrawithoutdoctorspres.com# ">why does viagra work</a>
<a href=https://viagrawithoutdoctorspres.com#>natrual supplements that work like viagra</a> stendra vs viagra

ShirleymapShirleymap2019/12/07 15:11mom slips son viagra <a href=" https://viagrawithoutdoctorspres.com# ">price of 100 mg viagra at costco pharmacy uugyqisfxdjuc</a>
<a href=https://viagrawithoutdoctorspres.com#>susanna thompson viagra sidtsfvgsgyrt</a> using viagra

JamesCagueJamesCague2019/12/07 15:43can you take viagra with lisinopril <a href=" https://viagrawithoutdoctorspres.com# ">how long does viagra last</a>
how long for viagra to take effect

HarrySnireHarrySnire2019/12/07 15:57generic viagra without subscription walmart <a href=" https://viagrawithoutdoctorspres.com# ">generic viagra pill identification</a>
<a href=https://viagrawithoutdoctorspres.com#>husband viagra erection</a> how to order viagra online

HaroldClaceHaroldClace2019/12/07 16:33can you order viagra without a prescription <a href=" https://viagrawithoutdoctorspres.com# ">viagra eyesight trails</a>
<a href=https://viagrawithoutdoctorspres.com#>how to use viagra for maximum effect</a> womens viagra pill

ShirleymapShirleymap2019/12/07 17:33"viagra on sterioid"s dryl <a href=" https://viagrawithoutdoctorspres.com# ">viagra pranks fafzmhihfninx</a>
<a href=https://viagrawithoutdoctorspres.com#>viagra theophanyschool.org ohmvdflcfyrnb</a> does viagra show up in probation urine test

JamesCagueJamesCague2019/12/07 18:30coffee with viagra <a href=" https://viagrawithoutdoctorspres.com# ">show pictures of viagra working</a>
viagra jokes for women

ShirleymapShirleymap2019/12/07 19:50fiat viagra super bowl commercial <a href=" https://viagrawithoutdoctorspres.com# ">us pharmacy viagra qalkkzdhtlkre</a>
<a href=https://viagrawithoutdoctorspres.com#>800-239-8545 viagra wubvcwbtfcyyt</a> how long does viagra take to work

JamesCagueJamesCague2019/12/07 21:10maya bijou helps brother with his viagra dick problem <a href=" https://viagrawithoutdoctorspres.com# ">viagra chastity bitch</a>
how to use viagra for best results

RodneyJenRodneyJen2019/12/07 22:09mom helps son cum/viagra <a href=" https://viagrawithoutdoctorspres.com# ">1-800-480-1187, viagra on steroids</a>
edema be treated by viagra

JamesCagueJamesCague2019/12/07 23:54viagra india pharmacy <a href=" https://viagrawithoutdoctorspres.com# ">woman in viagra commercial 2016</a>
viagra jerk off multiple cumshots

RodneyJenRodneyJen2019/12/08 01:04viagra demonstration <a href=" https://viagrawithoutdoctorspres.com# ">girl in viagra commercial blue dress</a>
viagra torture

JefferyBlireJefferyBlire2019/12/08 01:39for whom is viagra contraindicated
<a href=" https://viagrawithoutdoctorspres.com# ">viagra pricing</a>
viagra dosing <a href=https://viagrawithoutdoctorspres.com#>viagra coupons pwuqhvyaaotrv</a>

07/06/20 (Wed)6月20日の雑記

[] 6月20日の雑記 - schwarzの雑記 を含むブックマーク

今までいろいろと時間を計るプログラムについて書きましたが、System.Diagnostics.Stopwatchクラスを使うのが一番よさそうです。

VisualStudio買ったときについてきた、クラス名の一覧が書かれたでっかいポスターをボーっと眺めていたら偶然見つけました。


(using System.Diagnostics;)

Stopwatch watch = new Stopwatch();
// 計測開始
watch.Start();

時間を計りたい処理();

// 計測終了
watch.Stop();

Console.WriteLine("{0}ms", watch.ElapsedMilliseconds);

中でパフォーマンスカウンタを使っているそうで、かなり正確です。

また、そのパフォーマンスカウンタを自分で使って計ることも出来ます。

long start = Stopwatch.GetTimestamp();

時間を計りたい処理();

long end = Stopwatch.GetTimestamp();

Console.WriteLine("{0}μs", (end-start) * 1000000 / Stopwatch.Frequency);

エフィフエフィフ2007/06/29 18:53前連絡した吉里吉里シナリオエディターの試作版が完成したよー。

http://gkf.sakura.ne.jp/cgi-bin/cgi/data/KSE.zip

SchwarzSchwarz2007/07/01 12:28すごいねこれは。
もうわたくしめの出る幕は全くございませんね:-)

07/06/05 (Tue)6月5日の雑記

[] 6月5日の雑記 - schwarzの雑記 を含むブックマーク

先日の構造体の話で出てきたFieldOffsetですが、あれを使えばCの共用体相当のものが作れるのではなかろうかと思いまして、実際できました。

[StructLayout(LayoutKind.Explicit)]
struct MyUnion {
    [FieldOffset(0)]
    public int hoge;
    [FieldOffset(0)]
    public int fuga;
}

という様に、どちらのオフセットも同じにしてやればよいのです。

MyUnion union = new MyUnion();
union.hoge = 1;

Console.WriteLine(union.fuga);

この結果は、驚く無かれ、1です。



といっても共用体なんてCの入門書でチラッと見て以来ご無沙汰もいいところですが、QueryPerformanceなんたらを調べているときにLARGE_INTEGERの定義を見て、共用体ってこうやって使うのかとかなり感動した覚えがあるので、以下ではC#で似たようなものを作ってみます。


構造体はこんな感じで定義します。4バイトの正の整数を表すものです。

[StructLayout(LayoutKind.Explicit)]
struct MyUInt {
    [FieldOffset(0)]
    public uint all;
    [FieldOffset(0)]
    public ushort lower;
    [FieldOffset(2)]
    public ushort higher;
}

allが全体としての4バイトの値を持っていて、lowerがその下位2バイト、higherが上位2バイトをあらわします。使ってみましょう。

MyUInt mu = new MyUInt();

mu.lower = 1;
Console.WriteLine(mu.all);  // 1

mu.higher = 1;
Console.WriteLine(mu.all); // 65537  (= 65536 + 1 = 0xFFFF + 0x0001)

mu.all = 65540;
Console.WriteLine("higher:{0} lower:{1}", mu.higher, mu.lower);
// higher:1 lower:4

ちょっとわかりにくいかもしれませんが、なかなか良くできてます。10進だとわかりにくいので16進で書くと、

 FFFF     FFFF
higher   lower

という感じで、上4桁がhigherに入ってて下4桁がlowerに入っています。そしてその2つがまとめてallに入っています。



さて多少話はそれますが、先日書いたimplicitはこういう構造体を作るときにすごく役立ちます。というのは、ある値で初期化したいとき、上記のようにいちいちnewでつくってからそのあとallに代入なんて、かったるいのもいいところです。そこで、構造体の中にこんなメソッドを用意します。

static public implicit operator MyUInt(uint u) {
    MyUInt mu = new MyUInt();
    mu.all = u;
    return mu;
}

これで、

MyUInt mu = 123456;

と一発で代入できます。すばらしい。

この調子でToStringとかも再定義して、allは完全に隠蔽してしまったほうがいいでしょう。

こんたろうこんたろう2007/06/06 03:47C#は触っていないのでschwarzの雑記が日々わからなくなっていく今日この頃…。たまにはRubyネタも入れてください。

僕が共用体を面白いと思ったのはH8マイコンを触った時です。HEWの吐き出すヘッダでは、1bitのビットフィールドを8つメンバに持つ構造体とcharの共用体を使っていて、PADR.BYTEやPADR.BIT.B0のようにレジスタをアクセスできるようになっていました。schwarzさんも講義でお世話になったはずです。

このPADRとかも実体は#define (*(resister_union*)0x01234567)のようなアドレスを直接指定したマクロになっていてマイコン楽しいなー、と思った記憶がありますが、それは別の話。

そんなわけでC#でもビットフィールドを作れないものかとちょっとだけ調べてみたのですが、言語としてはサポートしていないので微妙っぽいですね。個人的に共用体とビットフィールドはセットのように考えている節があるので、ちょっと残念。

SchwarzSchwarz2007/06/06 22:42あー、そう言われてみれば、あれ共用体ですね。すごく納得。

Ruby・・・ネタがさっぱり無いんですよね。というかRubyに限らずネタが無いんだけど、なんとか振り絞って書いてみますよ。