約 1,403,231 件
https://w.atwiki.jp/fanaticblood/pages/41.html
闘狩人(エンフォーサー) 闘狩人(エンフォーサー)は卓越した戦闘技術と多種多様な武器を握り、オールラウンドで戦う事のできる戦士クラスです。 自己のマテリアルを高めて自身を強化する等、単独でも様々な状況に対応できる事が他のクラスにはない魅力です。 反面、マテリアルを大量に放出する事が苦手であり、魔法はほとんど使う事ができません。 ですが、それを補って余りある戦闘技術は如何なる戦場でも生き残る事に役立つでしょう。 ▼以下先輩ハンターの声(※ネタと実感入り混じってます) 闇狩人という謎のクラスと間違える人が続出したという。ダークファイター( 瞬間火力と堅牢な体力で敵を圧倒する超パワー! いつもの物理前衛職。もちろん装備次第では射撃戦も挑める。だがしかし今回は主人公系NPCのクラスは機導師に取られてしまった、無念。 全職二位の潤沢な装備力で装備面のストレスは薄いが、他部分のステータスは控え目だ! 近距離特化と思いきや装備力特化だった 遠距離?銃持てば魔法が尽きた魔術師より活躍できる! 殴って良し、防いで良し、遠近両刀お任せあれ、と安定度はダントツ! 攻撃系のスキルが使いやすい反面、プレイングの内容も単純になってしまいがち。心情や小細工で個性を出すとgood☆ 疾影士(ストライダー) 疾影士(ストライダー)は高い身体能力と隠密能力を兼ね備えた軽戦士のクラスです。 自身のマテリアルを緻密に制御する事で高められた運動能力は、鋭敏な感覚で周辺の様々な情報を手に入れる事ができます。 運動能力を活かした身軽な体術で姿を隠して潜入工作や罠の設置、情報収集など彼らの活躍の場は大きいでしょう。 また、隠密、諜報能力が目を惹くクラスですが、直接的な戦闘能力も低くありません。 ▼以下先輩ハンターの声(※ネタと実感入り混じってます) 剣士ポジかと思ったらNINJAだった。 軽戦士型からシーフ型まで幅広く所属するニンジャクラス。選択肢が広い分プレイング字数が最大の敵になる 猟撃士(イェーガー) 猟撃士(イェーガー)はリアルブルー製の銃器やクリムゾンウェスト伝来の弓など射撃武器の扱いに特化した弓術士のクラスです。 己のマテリアルを高め、より獲物を捉える確かな目を持っている彼らは、自らの射程圏において非常に強力な力を発揮します。 反面近距離での戦いや魔法の扱いでは他のクラスに一歩を譲り、魔術を得手としない戦士系クラスの中では比較的得意分野がはっきりしたクラスです。 ▼以下先輩ハンターの声(※ネタと実感入り混じってます) 立体機動は疾影士のお仕事です レベル上げると素敵BS特化になれます。でも近づかれたら死ぬ( 実はトップクラスの火力職。強化されたライフルのダメージは大斧や魔法をもしのぐ。そして支援妨害系スキルも充実。接近されたら拳銃か投げナイフで応戦だ! 魔術師(マギステル) 魔術師(マギステル)はマテリアルの行使に秀でた魔術を操るクラスです。 マテリアルの力そのものを扱う為、比較的攻撃的なスキルを得手としています。 聖導士、機導師、霊闘士がマテリアルの扱い方にそれぞれ特徴を持つクラスであるのに対し、魔術は幅の広い技法です。 長い歴史の中で他の術を研究し取り込んできた結果とも、そもそも他の術の源流こそが魔術である故とも言われています。 ▼以下先輩ハンターの声(※ネタと実感入り混じってます) その他ゲームのような「便利屋さん」枠ではなく、核兵器枠 魔法威力は高めだが、重火器には劣る。でも属性とか範囲攻撃とか戦略的に色々できて楽しいです。装備力も意外と高いので防御もある程度固められます。 防御や回避を上げて前線に立つ者もいる。装備力は現状ワーストだけど( 聖導士(クルセイダー) 聖導士(クルセイダー)は癒しと戦いの双方を兼ね備えた法術を行使するクラスです。 法術はエクラ教のように何らかの信仰心を核とし、信仰の対象に力を借りる事で行使される術です。 歪虚に対抗する事、そして歪虚によって傷付いた弱き人々の心身を癒す事に長けています。 エクラ教の信徒が割合としては多いですが、信仰の対象は異なっていてもクラスを選択する事は可能です。 ▼以下先輩ハンターの声(※ネタと実感入り混じってます) ゲーム唯一の癒し手だが……。 闇属性もあるのでカルトな方もお気軽にご登録ください。 神への愛を持って敵を殴るクラス。殴りスキルもそれなりにあり前衛でも行けるが、装備力が低めなのが玉に瑕 いいですか?皆さん。殺していいのは堕落者どもと歪虚だけです。 ↑実際属性を乗せた上での魔法火力はそこそこ。回復もできる補助役として見ればかなり優秀なのでは? なお自衛力 機導師(アルケミスト) 機導師(アルケミスト)は機導術と呼ばれる新しい技術で、魔導銃などの機械を扱う事に長けたクラスです。 機導術とは魔力強化、変性などによる操作を行うこと、特に鉱物性マテリアルの扱いに適した術です。 また、機械装置との同調に秀でており、理解できない装置の本質を直感的に把握し操作する事を得手としています。 魔法鍛冶などは一般技術として広く普及していますが、専門の機導師は戦いにおいてもその力を発揮するでしょう。 ▼以下先輩ハンターの声(※ネタと実感入り混じってます) てっきり手を合わせて地面や壁から武器を作ったりすると思ってた アルケミストですが、等価交換はありません。(たぶん)すくなくとも身体をもっていかれたりはしないはず。 械ならなんでもスキルの媒体にできるので、懐中電灯でビームサーベルなど子供の頃の遊びをそのまま戦闘スタイルにもできます。メリットがあるかは知らない( →やってみた。メリットはなかった。 何でもできる。マジで何でもできる。でも回避上げるのちょっと大変。 霊闘士(ベルセルク) 霊闘士(ベルセルク)は霊呪と呼ばれる特殊な術式を扱うクラスです。 霊呪とは、祖霊や自然精霊の力を憑依という形で借り、自らの身体能力の向上などを行う術、降霊術や召喚術に近い術式です。 霊呪の極意は力を借りる対象と深く同調する事にあり、その結果姿形にまで影響を受ける事から一部では『獣人』と呼ばれる事もあります。 辺境部族に伝承されていた戦いの術を源流としたクラスですが、クラスを選択することは誰でも可能です。 ▼以下先輩ハンターの声(※ネタと実感入り混じってます) 何にでも対応できる代わりに一手遅れる哀しみを背負った戦士 救いはないんですかっ!! 舞刀士(ソードダンサー) 舞刀士(ソードダンサー)は剣と刀を主に用いる、技の戦士クラスです。 高い命中と機動性を生かした戦闘方法を得意とします。また構えをとることなどにより、戦局に応じて自身の能力を高めることが可能です。 一方で生命力は低めで、そのスキルを生かすためには装備が限定されることから、急な状況変化への対応は難しいでしょう。 クリムゾンウェスト東方で発展したクラスですが、ハンターであれば出身・種族に関係なく選択できます。 ▼以下先輩ハンターの声(※ネタと実感入り混じってます) 強い!ロマン!やられるまえにやらないと死ぬ( 受け流せる。右から左に受け流せる。勿論、左から右にも受け流せる。ただ受けるより技巧派っぽく見えるよ! 符術師(カードマスター) 東方に伝わる魔術師系のクラスです。 魔力が込められた符やカードを用いることで、結界を張ったり、魔力の流れを利用する魔法を得意とするクラスと伝えられます。 ▼以下先輩ハンターの声(※ネタと実感入り混じってます) 格闘師(マスターアームズ) 東方に伝わる戦士系のクラスです。 無手による格闘技術を中心に、さまざまな戦闘技術を修めることのできるクラスとされます。 ▼以下先輩ハンターの声(※ネタと実感入り混じってます) ■コメント■ 聖導士について (2017-02-02 22 06 46) ↑誤送信しました。 回復に目が行きがちですが、味方の攻撃、防御面での強化、味方BSの解除や敵へのBS付与、変わり種では侵入阻害結界など補助スキルが非常に豊富です。依頼面子次第では補助のみで役割ができることも。 (2017-02-02 22 11 13) 符術師について 相手の行動に合わせて発動するタイプのスキルが豊富で、攻撃してきた敵の妨害が得意な後衛系魔法職。……の、はずですが……何故か、スキル媒体になるカード属性装備に近接型のものが増えつつある謎職。決して耐久力は高くないはずですが……今後、近接攻撃が強くなるのかしら…… (2017-02-02 22 21 21) コメント
https://w.atwiki.jp/hgsk/pages/36.html
クラス クラスの利用者は3種類に分けられる 外部利用者(第三者) public 内部利用者(つまり自分自身) private 継承利用者(サブクラス) protected インスタンス変数 インスタンス変数はクラスローカルであるべき
https://w.atwiki.jp/stormlegion/pages/12.html
戦略クラス アーケイン(Arcane) 秘術系クラス ディバイン(Divine) 信仰系クラス エキスパート(Expert) 技能系クラス 戦術クラス ストライカー(Striker) ダメージ強化型攻撃系クラス ヴァンガード(Vanguard):ストライカー+ディフェンダー コマンダー(Commander):ストライカー+リーダー ハスラー(Hustler):ストライカー+コントローラー ディフェンダー(Defender) 防御/回復系クラス ガーディアン(Guardian):ディフェンダー+リーダー バウンサー(Bouncer):ディフェンダー+コントローラー リーダー(Leader) 指揮系クラス ルーラー(Ruler):リーダー+コントローラー コントローラー(Controller) 範囲/属性/特殊効果型攻撃系クラス ex)若獅子の戦賦 リューマ ストライカー+ディフェンダー ガンボルト ディバイン+ディフェンダー ノトス アーケイン+コントローラー スリンガー エキスパート+ストライカー
https://w.atwiki.jp/eternal-desire/pages/15.html
成長値比較 基本クラス 騎士系 闘士系 拳闘士系 サムライ系 斥候系 暗殺者系 弓戦士系 銃士系 白魔法使い系 黒魔法使い系 召喚魔法使い系 魔法戦士系 暴戦士系 女戦士系 使役系 作製系 その他系 基本クラス No クラス名 ランク 1 ノーヴィス D 2 ウォリアー D 3 ハンター D 4 メイジ D 騎士系 No クラス名 ランク 5 ナイト C 20 キャバリー B 21 クルセイダー B 55 ギャラント A 56 パラディン A 闘士系 No クラス名 ランク 6 ソルジャー C 22 グラディエイター B 23 ブレイブ B 57 スレイヤー A 58 デアデビル A 拳闘士系 No クラス名 ランク 8 バシュカー C 25 グラップラー B 26 パンツァー B 59 ベルテッド A 60 ジオグラスパー A サムライ系 No クラス名 ランク 9 剣客 C 27 剣豪 B 61 剣師 A 斥候系 No クラス名 ランク 10 スカウト C 28 レンジャー B 29 ホークアイ B 62 ローグ A 63 アルバトロス A 暗殺者系 No クラス名 ランク 11 アサシン C 30 忍者 B 64 シャドウゲイザー A 弓戦士系 No クラス名 ランク 12 アーチャー C 31 マークスマン B 32 シューター B 65 スナイパー A 66 レイダー A 銃士系 No クラス名 ランク 33 ガンマン B 67 キャラバニア A 白魔法使い系 No クラス名 ランク 13 クレリック C 34 カーディナル B 35 プリースト B 68 ビショップ A 69 セイント A 黒魔法使い系 No クラス名 ランク 14 ウィザード C 36 セイジ B 37 ウォーロック B 70 ジーニアス A 71 ハーミット A 召喚魔法使い系 No クラス名 ランク 15 シャーマン C 38 ソーサラー B 39 サマナー B 72 レヴェリア A 73 ドルイド A 魔法戦士系 No クラス名 ランク 18 スペルウォリアー C 49 スペルアジール C 40 ウィズウォリアー B 50 クリアアジール B 74 ルーンマイター A 75 ルーンスウィフト A 暴戦士系 No クラス名 ランク 47 ヴァルガー C 48 タイラント B 76 ドレッドノート A 女戦士系 No クラス名 ランク 7 アマゾネス C 24 ワルキューレ B 77 ヒルド A 使役系 No クラス名 ランク 16 アニマルテイマー - 41 ビーストテイマー - 42 ドールワーカー - 79 ドラグナー - 80 マシニスト - 作製系 No クラス名 ランク 17 クラフトマン - 43 ブラックスミス - 78 マイスタースミス - その他系 No クラス名 ランク 19 ダークスター - 44 ヴァイキング - ?? セイレーン - 45 ロード/レディ - 46 アサンブラジスト - 51 魔剣士 - 52 レッドソニア - 53 幻界闘士 - 81 ナイトブリード - 82 エギルキング - 83 ロードオブロード/ロードオブレディ - 84 クルシブリスト - 85 霧の戦士 - 86 ミネルバ - 87 竜幻士 - ?? シェイプシフター - ?? エンジェル - ?? デーモン -
https://w.atwiki.jp/atachi/pages/17.html
クラス コンストラクタ・デストラクタ 静的コンストラクタ メンバ変数 静的メンバ変数 readonlyメンバ メンバ関数 静的メンバ関数 プロパティ 演算子のオーバーロード 匿名クラスの定義 静的なクラスの定義 拡張メソッド 抽象クラスの定義 抽象メソッドの定義 クラスの継承 コンストラクタの呼び出し順序 呼び出し可能な基底クラスのメンバ 隠蔽とオーバーライド 最基底クラス「object」 継承の禁止 列挙型 Enumの操作 フラグ クラス class MyClass { } コンストラクタ・デストラクタ コンストラクタとは、クラスのインスタンスが作成される際に呼び出される特殊なメソッドで、インスタンスを初期化するための処理を実装する。 デストラクタとは、インスタンスがメモリから破棄される際に呼び出される特殊なメソッドで、インスタンスの後処理をするための実装する。 ただし、インスタンスがメモリから破棄されるタイミングはプログラマは制御できないので、デストラクタが呼び出されるタイミングは不定。 コンストラクタはクラス名と同じ名前のメソッドで、戻り値の指定をせずに記述する。 コンストラクタはオーバーロードで定義できる。 デストラクタはクラス名に「~」をつけたメソッドで、戻り値・引数の両方とも指定出来ない。 class MyClass { public MyClass() { // コンストラクタ } public MyClass(int num) { // コンストラクタ } ~MyClass() { // デストラクタ } } 静的コンストラクタ 静的コンストラクタは、プログラムの開始時に1度だけ実行されるコンストラクタで、プログラム内でクラスがインスタンス化されるかされないかに関わらず必ず1度だけ実行されます。 静的変数の初期化はコンストラクタ初期化子で行うか静的コンストラクタ内で行う。 class MyClass { static int numInstance; static MyClass() { // 静的なメンバ変数のみ呼び出し可能。 MyClass.numInstance = 0; } } メンバ変数 静的メンバ変数 実装したクラスのすべてのインスタンスで共有される変数である。 メンバ変数の定義時に「static」をつける。 次のソースはMyClassのメモリ上のインスタンス数を数えることができる。(デストラクタで変数をデクリメントしているが、デストラクタが呼び出されるタイミングは不定なので、この値が有効な変数数を示しているわけではない) class MyClass { public static int instanceNum = 0; public MyClass() { MyClass.instanceNum++; } ~MyClass() { MyClass.instanceNum--; } } // メインの処理 int c0 = MyClass.instanceNum; // c0 = 0; MyClass inst1 = new MyClass(); int c1 = MyClass.instanceNum; // c1 = 1; MyClass inst2 = new MyClass(); int c2 = MyClass.instanceNum; // c2 = 2; inst1 = null; // ガベージコレクタ(GC)が呼び出されそうな処理 // GCが呼び出された場合は、inst1のデストラクタが呼び出されている。 int c3 = MyClass.instanceNum; // c3 = 1; readonlyメンバ readonlyメンバ変数は初期化時・コンストラクタ時にのみ値を設定することができ、以降は読み取ることしかできないメンバ変数である。 class MyClass { readonly int num; readonly string targetText = "ウサテイ"; readonly ClassA obj; public MyClass() { this.num = 10; // コンストラクタでの初期値設定 // コンストラクタ内ならば、何回でも再設定可能 this.num = 11; // インスタンスも初期化可能 obj = new ClassA(); } public MyClass(string value) { this.targetText = value; // 初期化時の値を、コンストラクタ時に再設定することが可能。 } } メンバ関数 静的メンバ関数 メソッドの定義時に「static」をつける。 プロパティ 呼び出し側からはただのメンバ変数に見えるが、実際はロジックが含まれたメンバ関数が呼び出されるもの。 class MyTest { private int _num; // プロパティの定義 public int num { // // アクセサの定義 // set { // valueは特殊な変数で、setterの定義でのみ使用できる。 // アクセサを使用すると、値の設定が可能であるか検証するコードを実行できる。 if( value 0 ) { this._num = value; } } get { // getterではreturnによって、値を返す return this._num; } } } アクセッサのgetterとsetterで異なるアクセスレベルを設定することができる(C#2) アクセスレベルを別々にすると、外部から値を設定できないメンバ変数を定義し、クラス内部からのみsetterを呼び出して値の検証を行うといった処理が可能となる。 public int num { get { return this._num; } protected set { // setterは内部からのみアクセスを許可。 if( value 0 ) { this._num = value; } } C#3からはプロパティのアクセサを簡単に宣言できる自動プロパティという記述ができる。 自動プロパティを使用すると、アクセサの中身を記述する手間を省け、将来的にアクセサに何らかの処理を行わせたいケースが発生した場合に拡張しやすくなる。 public int num {get; set; } // 自動プロパティ public int num {get; protected set; } // setterのアクセス可能性をprotectedに設定。 演算子のオーバーロード 匿名クラスの定義 JavaScriptのようなプロトタイプ型プログラミング言語のようなクラス(っぽいもの)を定義できる。 var x = new {Age = 10, Name = "ケミストリー" }; int age = x.Age; String name = x.Name; 変数xは匿名クラスです。型は存在しないためvarキーワードを使って変数を宣言する。 この匿名クラスはAgeとNameというメンバを持っているため、変数xを使用してそれらにアクセスができる。 静的なクラスの定義 インスタンスの作成不可能なクラスを静的クラスと呼ぶ。静的クラスでは静的なメンバ関数・静的なメンバ変数のみがクラスのメンバに実装できます。 静的クラスを定義するにはstaticキーワードを指定してクラスを定義すればよい。 static class MyClass { static int num; public static int getNum() { return MyClass.num; } static MyClass() { num = 0; } } 拡張メソッド 静的クラスを使用すると、あたかもインスタンスのクラスに定義してあるかのように振舞うメソッドをインスタンスのクラスの定義外に実装できます。 拡張メソッドの定義には静的クラスに静的メソッドを実装し、引数に「this」をつける。 static class StringExtensions { // string型に対する拡張メソッド public static string ToggleCase(this string s) { System.Text.StringBuilder sb = new System.Text.StringBuilder(); foreach(char c in s) { if(char.IsUpper(c)) { sb.Append(char.ToLower(c)); } else if(char.IsLower(c)) { sb.Append(char.ToUpper(c)); } else { sb.Append(c); } } return sb.ToString(); } } int main() { string s = "My name is Tom."; string s1 = StringExtensions.ToggleCase(s); // 通常の呼び出し方。ユーティリティっぽい。 string s2 = s.ToggleCase(); // 拡張メソッドでの呼び出し方。 // string.ToggleCase()を呼び出しているように見えるが、 // string型にはToggleCaseなんてメソッドは存在しない! } あたかもstringクラスにToggleCase()が実装されているように見えるため、あまり乱用してしまうとどこで定義されているか見失う可能性がある。他にも、本当にstringクラスがToggleCaseメソッドを実装したら既存のコードはどうなるか?など問題点が多いため、拡張メソッドの使用はなるべく避けるべき。 抽象クラスの定義 抽象クラスは通常のクラスと同じようにメソッドやメンバ変数を持つがインスタンスが作成できない。 抽象クラスは、同じ処理を必要とする派生クラスを作成する場合などに使用する。 抽象クラスを定義するにはabstractキーワードを使用する。 abstract class MyClass { } 抽象メソッドの定義 抽象メソッドとはメソッドの宣言のみを抽象クラスで行い、メソッドの実装は派生クラスに任せるといった場合に使用する。 abstract class MyClass { abstract string sayHello(); // 抽象メソッド メソッドだけでなく、プロパティも抽象メソッドとして宣言することが可能である。 クラスの継承 class MyParent{ } class MyChild MyParent { // MyParentを継承したMyChildクラスを定義 } コンストラクタの呼び出し順序 継承によってクラスツリーを構成したクラスのコンストラクタは「基底クラス→派生クラス」という順番に呼び出される。 通常は自動的に基底クラスのコンストラクタを呼び出しますが、これは基底クラスにデフォルトコンストラクタが定義されている場合である。 基底クラスにデフォルトコンストラクタが定義されていない場合や基底クラスに複数のコンストラクタが定義されている場合、任意のコンストラクタを明示的に呼び出す必要がある。 class MyParent{ public MyParent(int config){ } } class MyChild MyParent { // エラー! // MyParentにデフォルトコンストラクタがない } class MyChild MyParent { public MyChild() base(0) { // MyParent(0)を明示的に呼び出す } public MyChild(int config) base(config) { } 呼び出し可能な基底クラスのメンバ 派生クラスは基底クラスが定義しているすべてのメンバへのアクセスが可能というわけではない。 派生クラスがアクセス可能な基底クラスのメンバは次の通り。 publicで宣言されたメンバ変数・メンバ関数 protectedで宣言されたメンバ変数・メンバ関数 class Base { public int public_val; protected int protected_val; private int private_val; void BaseTest() { public_val = 0; // OK protected_val = 0; // OK private_val = 0; // OK } } class Derived Base { void DerivedTest() { public_val = 0; // OK protected_val = 0; // OK (protected は派生クラスからアクセス可能) private_val = 0; // エラー! (private は派生クラスからアクセス不能) } } class Test { static void Main() { Base b = new Base(); b.public_val = 0; // OK b.protected_val = 0; // エラー!(protected は外部からアクセス不能) b.private_val = 0; // エラー!(private は外部からアクセス不能) } 隠蔽とオーバーライド 派生クラスが基底クラスのメンバを上書きすることをメソッドの隠蔽と呼ぶ。 class Base { public void hello() { Console.Write("Base. Hello!"); } } class Derived Base { public new void hello() { // Baseクラスのhelloメソッドをオーバーライド Console.Write("Derived. Hello!"); } public void hello2() { hello(); // Derivedクラスのhelloメソッド base.hello(); // Baseクラスのhelloメソッドを呼び出す(次項で説明) } } 派生クラスからオーバーライドしたメソッドを呼び出すと、派生クラスで実装した処理が呼び出される。 基底クラスのメソッドを呼び出したい場合は、明示的に baseキーワード を使用する必要がある。 メソッドの隠蔽と同じように派生クラスが基底クラスのメンバを上書きする際に、仮想メソッド宣言してメソッドを上書きすることをオーバーライドと呼ぶ。 オーバーライドを許可するメソッドにはvirtualキーワードを修飾します。また、オーバーライドするメソッドにはオーバーライドしていることを明示的に示すためoverrideキーワードを修飾する。 class Base { public virtual void hello() { Console.Write("Base. Hello!"); } } class Derived Base { public override void hello() { // Baseクラスのhelloメソッドをオーバーライド Console.Write("Derived. Hello!"); } public void hello2() { hello(); // Derivedクラスのhelloメソッド base.hello(); // Baseクラスのhelloメソッドを呼び出す(次項で説明) } } このように派生クラスでメソッドを上書きする仕組みには2種類あるが、これらの違いはクラスのインスタンスを使用する際に現れる。 隠蔽やオーバーライドはメンバ関数だけでなくプロパティにも使用できる。 最基底クラス「object」 すべてのクラスは基底クラスであるobjectクラスを継承しています。 objectクラスにはオブジェクトを文字列で表示するためのToString()などのメソッドが定義されています。 これらは仮想メソッド宣言されているため、派生クラスでオーバーライドすることができます。 継承の禁止 派生クラスを作成してほしくないようなクラスを定義する場合にはsealedキーワードを指定する。 sealed class MyTest { } 列挙型 // 列挙型の定義 enum MyEnum { Test1,Test2,Test3 } // アクセス方法 MyEnum e = MyEnum.Test1; 列挙型はC++のように各要素に値を設けることができる。 // 列挙型の定義 enum MyEnum int{ WMA_CREATE = 1 // 0001 ,WMA_BLACK = 2 // 0010 ,WMA_CHILD = 4 // 0100 ,WMA_COLD = 8 // 1000 } void main() { byte pos = 4; Console.Write("フラグ名={0}",(MyEnum)pos); // "WMA_CHILD" } Enumの操作 System.Enumでは列挙型の操作を行える。 Enum.GetName string s = Enum.GetName(typeof(MyEnum),4) 列挙型の指定位置の要素名を取得 Enum.GetValues int[] i = Enum.GetValues(typeof(MyEnum)) 列挙型の値をすべて取得する Enum.GetNames int[] i = Enum.GetNames(typeof(MyEnum)) 列挙型の要素名をすべて取得する フラグ 各要素には任意の順番を振ることができる。 この仕様を活かし、列挙型は重複のない数値を管理するために使用できる。 enum MyEnum { X = 1, // 0x001 Y = 2, // 0x010 Z = 4, // 0x100 } このような列挙型はOR演算によってフラグとして利用する際に便利です。 MyEnum flag = MyEnum.X | MyEnum.Z; // 011 上記のコードで得られた変数flagには「3」という値が格納されますがMyEnumには3に相当する要素がないため、警告はされませんが不明な値を持った変数であるように見えることがあります。 MyEnum flag = MyEnum.X | MyEnum.Z; // 011 System.write(flag); // flag.ToString()によって「3」が出力される。 MyEnumを定義する際にFlags属性(FlagAttribute)をつけておくと、ToString()の出力結果が変わりわかりやすくなります。 [Flags] enum MyEnum { X = 1, // 0x001 Y = 2, // 0x010 Z = 4, // 0x100 } MyEnum flag = MyEnum.X | MyEnum.Z; // 011 System.write(flag); // 「X, Y」と出力される Flags属性を持ったEnumではビット演算を行うことができます。 [Flags] enum MyEnum { X = 1, // 0x001 Y = 2, // 0x010 Z = 4, // 0x100 } MyEnum flag = MyEnum.X | MyEnum.Z; if( (flag MyEnum.X) == MyEnum.X) System.write("Xがセットされています。"); if( (flag MyEnum.Y) == MyEnum.Y) System.write("Yがセットされています。"); if( (flag MyEnum.Z) == MyEnum.Z) System.write("Zがセットされています。"); 上記のような算術記法によるビット演算は、コードが複雑化しますのでこちらで説明するようなメソッドを使用するとよいです。
https://w.atwiki.jp/lyokun/pages/17.html
クラスの作り方 public class [クラス名]{ public [クラス名と同じ文字列]() { コンストラクタ } } クラスの使い方 [クラス名] [変数名] = new [クラス名](); クラス継承 class [派生クラス名] [基底クラス名]{ [派生クラスの定義] } プロパティの作り方 private string _[プロパティ名]; public string [プロパティ名]{ get { return _[プロパティ名]; } set { _[プロパティ名] = value; } } 上と同じものを省略して書く場合 public string [プロパティ名] { get; set; }
https://w.atwiki.jp/melon/pages/19.html
クラスは宣言。 クラスインターフェース @interfaceで始まり、ディレクティブ@endで終わる。 (コンパイラに対するObjective-Cのディレクティブはすべて「@」) @interface クラス名 スーパクラス名 { インスタンス変数宣言 } メソッド宣言 @end インスタンスメソッドとクラスメソッド インスタンスメソッドの前には - クラスメソッドの前には + を付ける。 クラス実装 @implementationディレクティブで始まり、@endディレクティブで終わる。 @implementation クラス名 スーパクラス名 { インスタンス変数実装 } メソッド実装 @end インスタンス変数の参照 インスタンス変数を参照するには、構造体ポインタ演算子(- )を使用。 インスタンス変数の有効範囲 @private @protected @public @package
https://w.atwiki.jp/talesoftheworld/pages/9.html
戦士 斧を使った肉弾戦を得意とするクラス。 太刀筋は荒いものの、一撃の威力は高く前線での戦力としては期待が出来る。 盗賊 一撃の威力は低いものの、身軽で隙のない連続攻撃を得意とするクラス。 また、敵からアイテムを盗むなどのほかの職業にない特殊な技を持つ。得意武器は短剣。 僧侶 回復やステータス強化の術を得意とするクラス。 パーティでの活躍を期待されるクラスではあるが単独でも自己回復などが可能な為、持久力は高い。 魔法使い 攻撃術を得意とするクラス。 肉弾戦闘には向かないクラスだが、術による攻撃力は技のそれを上回る。 剣士 剣を使った剣術のみに特化したクラス。 戦士に比べ、剣術に特化した分、柔軟性のあるバランスの良い戦闘が可能となっている。 狩人 格闘家 己の肉体を駆使して闘う『格闘術』を極めたクラス。 体術を基本とする為、戦士や剣士などに比べ、重装備はできないものの、その機動性は他を追随させない。 魔法剣士 剣術と魔法の両方を使いこなすクラス。 剣技に加え一部の回復魔法なども使えるため、あらゆる局面において万能の対応が可能なハイブリッドな活躍が期待できる。 忍者 『忍術』と呼ばれる特殊な戦闘術を極めたクラス。 遠距離からの素早い一撃離脱の攻撃を得意とし、前線においてトリッキーかつ、万能な戦いが期待できる。
https://w.atwiki.jp/fedic/pages/1639.html
クラス 各ユニットの戦場における役割を指す。職業や兵種とも。 ロード等の例外を除き、キャラクター設定としての身分や本来の職業とは独立して設定される。 殆どの作品では、クラスはいくつかのカテゴリに分かれ、各カテゴリに下級職と上級職が設定されている。 例えば、剣士系は下級:剣士→上級:ソードマスター、魔道士系は下級:魔道士→上級:賢者といった具合である。 クラスを変更することをクラスチェンジという。 クラスチェンジは、大きく分けて下級職から同一カテゴリの上級職への変更と、別カテゴリのクラスへの変更の2パターンが存在する。 前者はいわゆる昇格であり、シリーズの初期作品から存在しているシステムである。 後者は後期作品で導入されたシステムで、兵種変更や転職と呼ばれる。 上記の例で言えば、剣士がソードマスターになったり、魔道士が賢者になったりすることは昇格に当たり、 剣士が魔道士になったり、賢者がソードマスターになったりすることは兵種変更に当たる。 昇格や兵種変更のシステムは作品によって大きく異なり、 元のクラスで一定レベルに達した者が特定のアイテムを使うことで昇格できる 一部キャラのみイベントで強制的に昇格する 一部の兵種カテゴリは一つの下級職に対して上級職の選択肢が複数ある(魔道士の昇格先として賢者とマージナイトから選択できる等) 兵種カテゴリ毎の定員を超えない限り、兵種変更はノーコストで可能 兵種変更用のアイテムを使うことで、ユニット毎に設定された兵種素質の範囲内で兵種変更できる など様々なパターンが存在する。
https://w.atwiki.jp/wiki8_anson/pages/5.html
クラス クラスを宣言する オブジェクトを作成する メンバ変数を使ってみる メソッドを使ってみる メソッドを使ってみる2 メソッドを使ってみる3 コンストラクタを使ってみる カプセル化してみる オーバーロードを使ってみる クラスを継承させてみる スーパークラスのコンストラクタを指定してみる オーバーライドを使ってみる オーバーライドを拒否する サブクラス内でスーパークラスのメソッドを使ってみる 抽象クラスを使ってみる インターフェイスを使ってみる htmlプラグインエラー このプラグインを使うにはこのページの編集権限を「管理者のみ」に設定してください。