‫そして､ このビデオでは､ あなたが出会ったことがあるかもしれない､ あるいはないかもしれないけれど､
‫プログラミングをするときにとても便利で､ C-sharp開発でコントロールできる機能の武器として非常に重要になるものであることは間違いない親キーワードについて見ていきます｡
‫では､ 見てみましょう｡
‫というのも､ 私たちはすでにparamを使用するメソッドを使用しており､ right lineをかなり使用しているからです｡
‫right lineは､ ここで見るように､ hello worldと言います｡
‫右側の線にカーソルを合わせると､ 複数のオーバーロードがあることがわかります｡
‫ですから､ 基本的にはここにもう一度､ 右の行をこのように入力します｡
‫そして､ 一度ブラケットを開くと､ 18種類のオーバーロードがあることが表示されるのです｡
‫オーバーロードとは､ 基本的にこのメソッドの異なる種類の実装のことです｡
‫つまり､ このメソッドの実装はコンソールクラス内部で1つだけでなく､ 複数存在するのです｡
‫だから､ ここをクリックして確認することができます｡
‫ここには､ たくさんの右脳線の実装があることがわかります｡
‫単純なものから､ ブーリアン値を取るもの､ バッファを取るもの､ 基本的には文字のセットなどですね｡
‫つまり､ このブライトラインが持つオーバーロードは､ さまざまなものがあるのです｡
‫そして､ 特に参考にしているのが､ ここに紹介するものになります｡
‫少なくとも私のVisual Studioのバージョンでは15番目なんですね｡
‫確認する時期によって変わる可能性があります｡
‫そして､ ここにparamsというキーワードがあるのがわかると思いますが､ これはparams object array argと書いてあります｡
‫つまり､ 与えた数だけパラメータを受け取り､ オブジェクト型のパラメータを受け取るということです｡
‫基本的に､ 作成するクラス要素や一つ一つのオブジェクトは､ 基本的に何でもそのタイプのオブジェクトになります｡
‫だから､ このクラスプログラムも内部的にはオブジェクトを継承していることになる｡
‫継承については後で少し説明しますが､ 基本的には､ あらゆるタイプの情報やデータを受け入れるというだけです｡
‫この例では､ どのような情報でも受け入れるという使い方をする必要はありません｡
‫では､ あまり複雑になる前に､ 実際に例を見てみましょう｡
‫このオーバーロードでは､ 文字列の形式を受け取り､ 後でパラメータを受け取ることがわかりました｡
‫では､ この右側の行のメソッドにいくつかの値を渡してみましょう｡
‫パラメータとして渡す文字列とカンマの後の最初の値は､
‫この位置ゼロになるようにします｡
‫そして､ PIは314でこの位置になり､ ETはというと､ この広告塔になるわけです｡
‫だから､ これを実行すると
‫基本的にすべてのパラメータを受け入れていることがおわかりいただけると思います｡
‫つまり､ 価格が32で､ 円周率が3なだけです｡ 148はADDの記号です｡
‫だから､ もちろん数字やパラメータも好きなだけ追加することができる｡
‫では､ このバカげた例で､ 1＋2＋3といった具合に数字を渡していくことにしましょう｡
‫基本的には､ ここにある値ですが､ 文字列で使う場合は､ 0から始める必要があります｡
‫つまり､ ここがゼロの位置で､ 1が表示され､ 2番目は2が表示され､
‫ここが1というように表示されます｡
‫そこで､ このコードを実行すると､ やはり動作することがわかります｡
‫1＋2＋3......という具合に､ 28という数字が出るわけです｡
‫だから､ ここには8がないんです｡
‫9があります｡
‫それを全部一緒にやったのが､ こちらの28です｡
‫このように､ 計算結果も渡しているのがわかりますね｡
‫だから､ あらゆるものを受け入れることができるのです｡
‫しかし､ 今回注目したいのは､ オブジェクトではなく､ paramsキーワードの部分です｡
‫そこで､ メソッドの色が投げたいだけのパラメータを許可するために､ params
‫キーワードを使用する独自の例を作成しましょう｡
‫そこで､ 新しいメソッド､ public staticを作成しましょう｡
‫静的メソッドにすることで､ メインメソッドの内部で使用することができます｡
‫また､ メインメソッドから呼び出すと､ 何も返さず､ paramsメソッドという名前を付けながら型になります｡
‫そしてここでは､ このparamsキーワードを使用することにします｡
‫そして､ この場合､ オブジェクト型ではなく､ 文字列の配列として渡すことになります｡
‫そして､ これを呼び出す｡
‫文字列文の配列｡
‫だから､ 親メソッドの中｡
‫さて､ これから行うのは､ 4つのループを使用することです｡
‫そして､ Iはゼロになる｡
‫Iは文の長さより少なくなりそうです｡
‫そして､ 1ずつインクリメントしていく｡
‫だからプラスαの年｡
‫なるほど｡
‫では､ このループでやりたいことは何なのか？
‫まあ､ 基本的には､ 投げられたあのパラメータリストの項目を片っ端から書いていきたいだけなんですけどね｡
‫コンソールに書き込みたいので､ コンソールを使ってやればいいんです｡
‫ここに思想の正しさがある｡
‫だから
‫そうですね｡
‫Iの位置の文を使うのは､ 文が､ 配列であることを見れば､ 文字列の配列であるからだ｡
‫だから､ 最初の位置Iはゼロになる｡
‫だから､ 最初のパラメーターが何であれ､ この時点で書くものとして与えられたもので､
‫あとは空欄をこんな風に追加します｡
‫そして､ forループの次の繰り返しに行く｡
‫つまり､ このforループは､ このparamsメソッドにパラメータを渡した回数だけ繰り返し実行されることになります｡
‫では､ メインメソッドで見てみましょう｡
‫このメソッドを実際に呼んでみましょう｡
‫ここでは､ 超簡単な､ あるいはくだらない文章でこのparamsメソッドを呼び出すことにしていますが､ 文章は個々の単語に分解されることになります｡
‫ということで､ 長い文字列ということで｡
‫いつ終わるかわからない｡
‫ドット､ ドット､ ドット｡
‫そして､ このまま行くことも可能です｡
‫しかし､ 基本的には1つの文字列､ 別の文字列､ 別の文字列といった具合に渡していくだけです｡
‫ここでは､ たくさんの糸を渡しています｡
‫では､ このアプリケーションを実行してみましょう｡
‫そして､ これは長い文字列であることがわかります｡
‫いつ終わるかわからない｡
‫これでいつでも変更できるようになりました｡
‫では､ やってみましょう｡
‫もう一度実行してみましょう｡
‫そして今､ ご覧の通り､ 私たちは文章を不自由にしてしまった｡
‫これではいつ終わるかわからないが､ コードはまだ動く｡
‫だから､ スパームキーボードでは､ 基本的に好きなだけパラメータを渡すことができるんだ｡
‫また､ パラメータを全く渡さないことも可能でした｡
‫そこで､ 何もパラメータを渡さないことにしよう｡
‫そして､ 何も起こらないことを確認する｡
‫しかし､ 我々のコードもクラッシュしない｡
‫なるほど｡
‫これが､ このparamsキーワードのクールなところです｡
‫では､ 同様にオブジェクトを許可するメソッドを作ってみましょう｡
‫そこで､ もう一つparamsメソッドを作ってみましょう｡
‫これは親のメソッド2になりますが､ 文字列を受け取らず､ オブジェクトだけを受け取るので､ stuffと呼んでいます｡
‫さて､ どんなものを渡しても､ これから行うのは､ このfor eachループを使って､
‫オブジェクトの配列であるこのオブジェクトに渡したものを通過させるということです｡
‫そして､ ひとつひとつのオブジェクトに対して､ そのオブジェクトをここの正しいステートメントに入れることになるのです｡
‫さて､ どうする？
‫クールなのは､ すべてのクラスが内部で文字列を呼び出すメソッドを持っていることです｡
‫つまり､ 内部で作ったどのクラスも､ このメソッドを持っているか､ オブジェクトを継承している､ つまりこのメソッドを呼び出しているということです｡
‫文字列に｡
‫つまり､ このメソッドにどんなオブジェクトを与えても､ それを文字列にすることができるのです｡
‫たとえその文字列が､ これはクラスですとか､ これはソレというクラスですというようなものであってもです｡
‫そのため､ そこで得られるのは有益な情報ではないかもしれませんが､ 少なくとも文字列にしておけば､ アプリケーションがクラッシュすることはないでしょう｡
‫ですから､ 先ほど申し上げたように､ 相続は後ほど取り上げることにしています｡
‫基本的には､ 異なるクラス間の関係で､ あるクラスが親になることになります｡
‫そして､ このクラスには複数の子がいて､ 基本的に親は特定の関数や一般的なメンバーについて一定の機能セットを持ち､
‫継承するクラスは親と同じ機能を持つので､ 親と同じメンバーで､ 後から拡張できます｡
‫しかし､ 先ほども言ったように､ これについては別の章で詳しく説明するつもりです｡
‫ここで､ このまま実行しても何も起こらないわけです｡
‫では､ 実際にこれを走らせてみましょう｡
‫parents メソッドも呼び出して､ そこに渡す値を決めてみましょう｡
‫したがって､ くだらない値を渡すことになる｡
‫こんな感じでやりましょう｡
‫さて､ ここでは価格と呼ぶべき整数を用意し､ 50という値を与えています｡
‫そして､ 円周率になるfloatを渡しています｡
‫そして､ 広告看板となるキャラクターを用意しました｡
‫それから､ bookという文字列がありますが､ これはThe Hobbitになります｡
‫このメソッドには､ オブジェクトのパラメータ・リストがいくつでも渡されます｡
‫3つでも7つでも､ いくつでも通過させることができたのに､ 今はそれらの異なる変数をすべて通過させているだけなのです｡
‫だから､ and bookで価格を高く渡しているのです｡
‫そして､ 今これを実行すると
‫53と書いてあるのを確認する｡ 西暦14年､ 『ホビット』｡
‫そして､ そして､ 2行目､ パラマウント社のメソッド方法2と呼んでいるものです｡
‫もう一度言いますが､ 値を直接渡しているだけです｡
‫ここでは､ 55という文字列を渡しているわけです｡ 3 の後に､ 文字ドル記号を表示します｡
‫文字というのは､ ここではシングルクォートを使っているからですね｡
‫もしくは基本的にアポストロフィー｡
‫では､ なぜこの機能にこだわるのか､ 疑問に思われるかもしれません｡
‫だって､ デニス君はここでいくつか例を挙げてくれたけど､ 僕にはあまり役に立たないし､ なんで僕が気にするんだろう？
‫なぜなら､ いくつのパラメータを､ いくつのパラメータを渡したいか､ 具体的に定義できるからです｡
‫しかし､ そうではないアプリケーションもたくさんあり､
‫複数の異なる値を自由に渡せるようにする必要があります｡
‫そして､ 次のビデオでは､ 具体的な例でそれをよく見ていきます｡
‫では､ 現地でお会いしましょう｡