ふらっと C#,C♯,C#(初心者用) Part131 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part130
https://mevius.2ch.net/test/read.cgi/tech/1500327645/
■関連スレ
C#, C♯, C#相談室 Part94 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1492843013/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/
■情報源
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/ >>748
大域的な設計はトップダウンで考えよう
例えば、現在表示しているページのURLを管理するクラスがあって、
フォームはその内容を画面に反映させる&ページ遷移時に新しいURLを管理クラスに伝えると考えればいい
管理クラスはUIの細かいことを気にせずに状態の管理と保存・復帰だけを考えればいいし、
フォームは管理クラスの状態と同期するだけでいい >>750
ありがとうございます。話を自分なりに理解するとタブ現在表示しているUrlを別クラスPageページクラスが持ち
Pageクラスを内包したPageListクラスでファイルへの保存・復帰処理を行い、Formクラスでインスタンスを持ちTabControlに渡し、
各タブで何を表示するかのコントロールはTabControlで行おうと思うんですが、こういう感じですか? タブコンはtabの文字にフォント最大でウンコって入力するとバグる >>751
全体の構造が憶測でしかわからないのに「これでいいですか」って聞かれても困ると思う
タブコントロールの各タブにPageListとかがぶら下がっていてそこを選択して表示するとかなんだろうけど
質問の仕方から見ても自分でもまとめられていないようだし、まず動くもの作ってから拡張していけば? タブコンなんて使ってる時点でゴミ
とか言ってみる納品 Rails, React, Electron, AngularJS などのフレームワークを参考にすれば? プロパティってgetset関数毎回書くのアホらしいので省略しませんか?ってのかと思ってましたけど、レス読んでると他に意味があるんでしょうか?
浅い知識しかないので気になりました >>756
>>745に書いてあるようにメソッドのように扱える
必要ないのならpublicとかinternalとかの変数にして好きにしたらいいと思う >>756
書くのが面倒って言うより、ゲッターとセッターは
オブジェクト指向におけるオブジェクトの属性って概念の素直な表現になってないのが
美しくないというか、直感的じゃないよね データクラスを除けば、最近は作ったプロパティの大半が読み取り専用だわ
セッターいらね >>751
current urlのコレクションを管理するクラスを自前で作って、そのコレクションをシリアライズ/デシリアライズするイメージだよ
>>750はわかりやすく書いてくれてると思うぞ
current urlのコレクションはMVCのModel
Viewに依存すべきじゃない イベント実装しようとしていますが難しいですね
全然勉強してこなかったことが身にしみてきます 自分でイベントを書くときに思ったのですが、
イベントを発生させるときは、そのイベントがnullではないことを確認するのはなぜでしょうか? 例外になるから
nullチェックを避けるために何もしないラムダ式を登録しておく方法もあるけど、
なんか馬鹿くさいのは確かだね
VBみたに専用ステートメン用意した方がよかったかも。
でもこのVB方式はカスタムイベントで問題が出るそうだけど 今は ?. があるからどうでもいい
ソースでイベントでnullチェックしてたら古いソースなんだなと思う
そうnullチェックは昔話 >>762
イベントを使わない場合に落ちるから。
オレオレイベント実装で必ず使うのなら不要。 業務システムなんですが、今どきeachでもないfor文の多重ループ書く人って流石にマズいですか
それとも普通でしょうか
他人の四重ループを見て世間ではどうなのだろうと思いまして >>766
ixyzとかあると簡単に4重ループできるぞ
どうやって回避するんだ?
i=オブジェクト数、x方向、y方向、z方向
ってなってたら俺はこのままのがいいと思うが?
多重ループの数でPGの実力見ようとしてるお前がキチガイ過ぎてどうにもw 行列計算とかなら普通
ビジネスアプリでやるとちょっと実力疑われるね 名前の隠蔽とオーバーライドの違い・意義について教えていただきたいです
名前の隠蔽: 同じ名前のメソッドを派生先で作ると基本クラスの同名メソッドは見えなくなる
オーバーライド: 派生先でオーバーライドメソッドを定義することによりインスタンス化したオブジェクトの基本クラスの内容を書き換えること
ということで間違いないですか?
オーバーライドメソッドのこの「インスタンス化した後に内容を変更する」というのが多態性であるとネットであったのですが名前の隠蔽で様々なメソッドを定義して使うのは多態性に当たらないのですか?どうしてもこの違いだけわかりません
どなたかお願いします(><) 状況によるよ
多重ループ避ける程度でいちいち意味不明なメソッド作られても困る >>766
numpyつかえよw pythonだけど。 >>766
本当に四重ロープが必要な処理で
最適化した結果ならしょうがない
個人的には業務システムでそう言う状況に出会ったことはないが >>769
多態って何だ?みたいな哲学論(笑)は後回しにして機能的な違いだけに注目した方がいいよ。
http://www.atmarkit.co.jp/ait/articles/0209/11/news001.html
↑の記事にある通り、隠蔽の場合はインスタンスとそのインスタンスの入っている変数の型が一致している
場合のみ隠蔽したメンバーが呼ばれるのがオーバーライドとの違い
上の記事、オーバーライドより隠蔽を使うのが普通って言ってるような印象を受けるけど
実際は逆だからそこは勘違いしない方がいいよ
隠蔽はベースクラスの設計がおかしい場合の回避策みたいな感じでしか使われないと思う。
だからとりあえずはオーバーライドだけ覚えれば問題ない 何らかの集計作業だろうが、そういうのはDB使えば簡単だよな (入力して)と表示
oppaiと入力
入力したのはoppaiです。と出したいんだが Console.WriteLine(“”);
string = Console.ReadLine();
の意味がわからんな。Console.ReadLineをstringに代入する所とか >>781
それだけ見せられても誰もわからない
エスパースレじゃないんで >>781
Console.ReadLine()で処理した結果の文字列を
stringという名前の変数に代入してる
name = Foo.GetName()と同じ >>784
そうかな? わかってたら「Console.ReadLineをstringに代入する所」なんて書き方しないと思うんだが >>781
1行目:画面に1行空行を書き込む
2行目:ユーザーの入力を受け取り、Enterが押される(=改行)と、その1行を変数stringに格納 Form1のlowLayoutPanelに他のクラスからボタンを追加したい
という場合には
ttps://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1434882684
この内容を理解すれば良いのでしょうか? ごめんなさい。とりあえず別の方法でお茶濁して解決しました
まだ↑のは理解が及びません 解決したと思ってたの勘違いでした…すみません
>>787お願いします >>789
Form1のインスタンスを他のクラスから参照てきる様にしとけはよいのさ >>762
なるほどです、イベントの中がNullの場合発生させないということなのですね
あと自分でイベントを定義するときInvokeメソッドを呼ぶのはなぜでしょうか? >>791
>>792 も言ってるようにお祈りおまじないの部類。invoke無くても同じ。
UIスレッドで実行するためのcontrol.invokeとは別もん。 >>790
ありがとうございます
https://ideone.com/76njZo
public FlowLayoutPanel flowLayoutBase = new FlowLayoutPanel();
とForm1外に持ち出して、ボタン生成用のクラスをFrom1の継承クラスにしてもボタン現れず
で、こういうことじゃないだろう…ということで色々やってみて
外部クラスからインスタンス参照というのを参考に
https://ideone.com/TFCiQp
こんな形のメソッドに纏めて、そこを外部クラスから参照しようとするも、どう参照するのか…
恐らく何か的はずれなことしてると思いますが、何が駄目なんでしょうか?
よろしくお願いします >>791
?.演算子を使いたいから
デリゲートを呼ぶときは普通はInvokeは省略してaction()のように書くけど、
nullのとき何もしたくない場合にClick?.()みたいな書き方はできないから、仕方なくInvokeを明示的に書いてる windows form 上にIPカメラ(AXIS製)の動画を表示したいです。
どうすればよいでしょうか?
OpenCVとか使うのが一般的なのでしょうか?
環境的に、社外ソフトをインストールし辛いので、確証を得てから試したいと思っています。
dllを配置するだけのmjpegprocessorとかは違うのかな?
調べる手がかりでも教えてもらえればありがたいです。 >>794
Flpset()がなんでForm1_Load()の中に?
目眩がしてきた。。。 単純なテストで使い方を学ぶ段階なので、FlowrayoutpanelをForm_Load()の中で作るのが自然だと思ったからですが…なにか変ですか?
Form1にあるFlowrayoutpanelに外部クラスからボタン設置する方法を色々試してるので…
Flpset呼ばないとパネル無い状態ですし…
Flowrayoutpanelに外部クラス(ButtonRayout)から使うためにFlpsetを作った感じです(色々的外れかもしれませんが)
まだ色々よく分かっていないので、頓珍漢なことになってるとは思いますがすみません >>798
Flpsetをパブリックメソッドにすれは良いだけでしょ。 >>798
public void Flpset()←だとpublicがこの項目に対して有効ではありませんと出てしまいます >>801
ありがとうございます
Form1_Lordがタダのイベント(メソッド)だったというの、頭からすっかり飛んでました
今は時間無いので別クラスからControl配置は試せませんが、あとで色々やってみます
とりあえず、外に持ち出してpublicは適応できて、前と変わらぬ作動は出来ました ロケールが日本語環境のところで
指定された国コード(ISO)を指定された言語で表示させるには
どうしたらいいでしょうか。
string CountryName = GetCountryName("CN", "ko-kr");
という風に呼んだとき、中国という文字を韓国語で得たいのです。
public string GetCountryName(string CountryCode, string language)
{
// この中
}
CNのRegionInfoを取得するところまでは出来たんですが、
DisplayName だと日本語で、NativeName だと中国語で、それぞれ取れるのですが
韓国語に変換させたいのです。
Windowsのロケール自体を韓国に変更すれば、DisplayNameで韓国語が取れましたが
それはやりたくないです。 やったことないけど
Application.CurrentCultureか
Thread.CurrentThread.CurrentCultureを変えるのは? MSDNにはCurrentUICultureの方だって書いてあるね。
システムが持ってるリソースから拾ってくるんだろうからまあそうでしょう 当たり前だけど韓国語とかの表示させる言語の言語パック入ってなかったらどうにもならない > CNのRegionInfoを取得するところまでは出来たんですが、
のところを補足します。
var CountryCode = "CN";
var CountryName = System.Globalization.CultureInfo.GetCultures(System.Globalization.CultureTypes.SpecificCultures)
.Where(a => a.TwoLetterISOLanguageName.Equals(CountryCode, StringComparison.CurrentCultureIgnoreCase))
.First().DisplayName;
return CountryName;
で、実行ロケールでの(日本語での)「中国」は取れました。
んで、どこへ "ko-kr" を挟み込めば良いのかが分かりません。
> Application.CurrentCultureか
> Thread.CurrentThread.CurrentCultureを変えるのは?
そーいう力技しかないのかなぁ・・・ >>804
何で自分で表示するという選択肢がないんだ? >>809
その「力技」もやってみたけど確かに出来ないね
普通に自分でテーブル用意した方が早い気がする >>794
入れ子にしたメソッドがエラーにならないのを初めて知ったw
使い道が思いつかないけどw >>810-811
元号もそうだけど、この手のはなるべくFrameworkに任せてしまいたいのです。
国が増えるたびにメンテなんてやりたくない・・・
(Frameworkが更新されるはずだから、それに依存したい) >>815
ない袖は振れないし仕方ないかと。
まあ普通に考えて想定された使い方と違うんだろうね
日付や数値のフォーマットはデフォでいろんな地域のが入ってるみたいだから
ついでに国名ぐらいサービスしてくれてもいいような気がしないでもないけど その言語のOSならその言語で表示されるからそれでいいんじゃないの >>818
ごめん、知らんわ。
いつの間にpascal見たいな事ができる様に成ったんだ。
勉強不足でスマヌ。
Func、Actionで間に合ってた。死んでお詫びします。 >>821
C# 7 (Visual studio 2017) からだから追っかけやってる奴じゃなきゃ知らないのも当然 >>750
すいません、考えたのですが設計できません
データを管理するクラスを作り、UIが持っているUrlプロパティをFormが同期させるのはわかっていますが、タブの並び替えを実装しているので頭が混乱してしまいます
トップダウン設計で今までTabControl以下で持っていたTabPage変数と、TabPage以下で持っていたWebBrowser変数をFormに持ってきたのですがわけがわからなくなってしまいました
何をどこで持つべきなのかわからなくなってしまいパニックな状況です、設計ってかなり難しく感じています >>793
>>795
わかりました、今はおまじないとして覚えておくことにします C#はレガシーになりつつあるけど
拡張してなんとなく新しく見せてる
ここから新しく見せるのは無理かな JavaとKotlinの関係のように新しい言語に乗り換えるべきだろうね
最近の歪な言語仕様拡張には辟易するよ >>831
EntityFrameworkとLINQ to Entitiesでググってこい
LINQは単に、いろんなデータソース(DB、配列、リスト、xml)に対する処理を同じようにかける枠組み >>831
LINQのクエリ式はSQLを参考にしてるとは思うけど >F#
言語としては優秀なのかも知れないが
どうにも慣れない >>837
所用で…今YouTubeにあがってる動画見てる 今現在使っているタブ型WebBrowserでTreeView使ってJaneみたいなブックマーク機能を取り入れたいんですが、
フォルダとファイルのツリー構造を実現するクラスが思い浮かびません、どのようなクラスを作ればよいでしょうか? 乱数のとこわけワケワカメ。NextとかNextDoubleとか >>840
ありがとうございます、ブックマーク機能が一番骨折れそうですね c#erの皆さんがこれだけは覚えていて損はないって言語なんですか?CとC++以外で 使えて損しないのはJavaScript
学んで損しないのはLisp >>844
javascriptはクソだけど使う機会が多いので覚えたほうがいいと思う
しかも文法じゃなくてどういう風に使ってるかも含めて覚えたい
あとはpython
文字列など扱うとき便利 >クソだけど使う機会が多いので覚えたほうがいい
本当それなw 後はSQLを言語に含めて良いならSQL
個人的にはPowerShellもオススメしたい >>848
ようやくサーバー系OSでデフォルトになったからな つphp
掲示板ってどうやって作るんですかぁ?
って聞いてくる可愛い女の子に教えられる ■ このスレッドは過去ログ倉庫に格納されています