X



ふらっと C#,C♯,C#(初心者用) Part140
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん (ワッチョイ 9e9f-LwdJ)
垢版 |
2018/10/04(木) 18:56:38.41ID:JnxMNCXd0
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■関連スレ
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part139
https://mevius.5ch.net/test/read.cgi/tech/1533466544/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/

■情報源
https://msdn.microsoft.com/ja-jp/library/gg145045.aspx
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
0083デフォルトの名無しさん (ワッチョイ 67b3-9sSg)
垢版 |
2018/10/11(木) 07:18:56.97ID:8Foxk2RW0
namespaceまで作ってプログラムしたことが無いのですが、プロは駆使するのが普通なのでしょうか?

アニマルインタフェース実装した猫クラスと犬クラスを人クラスがメッセージ出して鳴かせるレベルの超初歩設計しかした事無いので、どこでnamespace使うのかなと悩んでおります
0087デフォルトの名無しさん (ワッチョイ ffeb-JlWZ)
垢版 |
2018/10/11(木) 14:06:58.98ID:sbec5Ilz0
JavaをやっていてJavaらしいコードを書ける人は大勢いるだろうけどさ
C#らしいコードを書ける人って、C#でプログラミングをしてる人の1割もいないんじゃねえのか?
0090デフォルトの名無しさん (アウアウエー Sa9f-NVVT)
垢版 |
2018/10/11(木) 16:52:44.52ID:lOIGtRbea
>>80
>それとも上部のpublicの所に書くのがいいんですか?

と書いているので、質問の意図はメソッド内の変数の宣言や初期化の位置についてではなく、
同じクラスのインスタンスを複数のメソッドでnewして使ってる時に、
これをローカル変数ではなくフィールドにした方がいいのか?ってことじゃないのかな。

そうであるなら答えはNo。
フィールドにしなくても要件を満たせるものをフィールドにしてはいけない。

何にしても、質問は意図が分かるように書いて欲しいね。
0094デフォルトの名無しさん (ワンミングク MMbf-s6iV)
垢版 |
2018/10/12(金) 09:49:30.31ID:+DY7sdXwM
W indows Fromアプリを作っています。
途中でアイコンを変更しました。Formプロパティ部分とプロジェクトのプロパティ-アプリケーションのアイコンの2か所です。
実行時のFormとエクスプローラでも詳細表示は変更後のアイコンになるのですが、エクスプローラでの大アイコンやショートカット、ドラッグした時のアイコンが古いままです。
どうすれば新しいアイコンに更新できますか。
0095デフォルトの名無しさん (ワッチョイ 27f2-7Kxw)
垢版 |
2018/10/12(金) 11:01:50.14ID:4rHGu3Q90
一度Windows標準のアイコンに戻して
再度新しいアイコンを選択してSaveしてから
再起動すれば更新されてない?
0101デフォルトの名無しさん (ワッチョイ 272b-JlWZ)
垢版 |
2018/10/12(金) 16:30:01.41ID:arkneguz0
質問ですが
デバッグ構成でのexeとリリース構成でのexeは
デバッグ情報が邪魔する分、デバッグexeの方が遅いという話は知っていましたが
「微々たるもんだろ」とあまり気に留めてませんでしたが
それが原因と思われる現象に当たりまして・・・
デバッグは問題無く通るので実行すると、データが混雑すると固まるのです
試しにリリース構成のexeにしたら問題無く動きます
どうやらデリゲートのBeginInvokeを使っているので
非同期処理になりタイミングずれにデバッグ情報が相まって固まってるようなんだけど
こういう場合
「リリースexeで問題無いならいいじゃん!」なのか
「いやいや、タイミングがずれるとエラーが出る可能性があるなら対処しておくべき!」なのか
どうなんでしょうね?
0103デフォルトの名無しさん (ワッチョイ bf8a-4Hut)
垢版 |
2018/10/12(金) 16:42:13.45ID:qSk0EFmG0
Html Agility Pack を使ってHTMLのスクレイピングをしているのですが、
↓のソースだと<h1>タグが存在していないとNULLエラーになります。
Try Catch を使わないでエラーを出さずに済む方法ってありますか?

       // Html Agility Pack
var htmlDoc = new HtmlAgilityPack.HtmlDocument();

htmlDoc.LoadHtml(htmlText);

var elm = htmlDoc.DocumentNode
.SelectNodes(@"//h1")
.Select(a => a.InnerText);
0107103 (ワッチョイ bf8a-4Hut)
垢版 |
2018/10/12(金) 20:37:39.56ID:qSk0EFmG0
>>104  .
SelectNodes(...)?.で解決しました
var elm?とか .Select()?とはやったのですがうまくいかず、わからなかったのですが
そこで使うんですね
ありがとうございました。
0109デフォルトの名無しさん (ワッチョイ ff9f-2Eea)
垢版 |
2018/10/13(土) 21:21:39.91ID:YNebL+WU0
XMLを読み込んで編集して保存する方法はいくつか有るようだけど制約なければXDocument使っとけばOK?
ちなみに構造が複雑なので静的モデルを作ってデシリアライズ->シリアライズが難しい場合の話
0117115 (ワッチョイ bf0a-a0t8)
垢版 |
2018/10/15(月) 10:43:50.18ID:TGR3LnQ40
最終リリースする時は、console.writeの類のものは削除しないとexeの中に入ってしまうんかな?
0123デフォルトの名無しさん (アウアウウー Saeb-pt3f)
垢版 |
2018/10/15(月) 19:00:08.62ID:SAlDu2eYa
どのログ出力ライブラリの話をしているかは知らないが
キューで実装されているならログ順序は保証されるだろうに
もしくはスレッドセーフでないライブラリを複数スレッドから触っているか
0125デフォルトの名無しさん (アウアウウー Saeb-pt3f)
垢版 |
2018/10/15(月) 21:07:45.41ID:SAlDu2eYa
>>123
情報が小出しかつ不明瞭だからエスパーしているが
複数スレッドからログ出力する場合の順序が未保証だからじゃないか
それがログ出力ライブラリとして妥当かどうかは更に別の話になるが

キューに積む積まない問わず、いいログ出力ライブラリって何がある?
0128デフォルトの名無しさん (ワッチョイ dfd2-7vHE)
垢版 |
2018/10/15(月) 23:26:10.89ID:L3fZFxj50
log4系はネット上に情報が沢山あるのと
自分が溜め込んだ資産が沢山あるからつい使いまわしちゃうな
仕様は確かにファッキンだが
0131デフォルトの名無しさん (ワッチョイ dfeb-JlWZ)
垢版 |
2018/10/16(火) 11:56:04.25ID:L6l9R59e0
GUIアプリケーションでのawaitについて教えてほしいんだけどさあ
↓この処理をボタン等のイベントから実行した場合、JklあるいはAsdfasyncが終了したかどうかってどうやってメインスレッドから取得するものなの?
async Task Asdfasync(){
await Jkl();//終わるまで画面をロックさせたくないが、これが終わっていない段階で他のボタンを押されると困る
}
0133デフォルトの名無しさん (ワッチョイ dfeb-JlWZ)
垢版 |
2018/10/16(火) 13:32:46.61ID:L6l9R59e0
それが使えるのならありがたいけど、ボタンのイベントから呼び出されたメソッドの戻り値って取得できるものなの?
0134デフォルトの名無しさん (アウアウエー Sa9f-NVVT)
垢版 |
2018/10/16(火) 13:42:08.84ID:lQy+05sVa
素直ににawaitの前後でボタンをDisable/Enableではあかんの?
そもそもそのためのawaitでしょう。

もちろん、常にそうできるわけじゃない(JKが終わったからって無条件でボタンをEnableに
できないような要件もありうるから)だろうけどほとんどの場合はそれでいいでしょ
0137デフォルトの名無しさん (ワッチョイ dfc3-EHN7)
垢版 |
2018/10/16(火) 18:13:14.36ID:CU/ms8va0
先に云っとく、良いソースじゃない。
こういう雰囲気?
Formにボタンを2つつけて動かしてみて
private Task __results;
private void button1_Click(object sender, EventArgs e)
{
if ((null == __results) || (__results.IsCompleted))
{
System.Diagnostics.Debug.WriteLine("Pass");
__results = Task.Run(() =>
{
this.Invoke(new Action
(() =>
{
button2.Enabled = false;
}
));
Task.Delay(5000).Wait();
this.Invoke(new Action
(() =>
{
button2.Enabled = true;
}
));
});
}
else
{
System.Diagnostics.Debug.WriteLine("Fail");
}
}
0139デフォルトの名無しさん (ワッチョイ df9b-DjIR)
垢版 |
2018/10/16(火) 23:11:55.51ID:O/V1xvTL0
コンボボックスが20個。
エクセルシート2の指定列の内容を各コンボボックスに入れる。
※cbo1には4列目、cbo2には10列目などバラバラ。

closedExcel?で読み込んで入れたんですけど、うまい作り方を教えてください。

Clsdata.CboAdd(this,tarPath,tarShtname,”4”,cbo1)
みたいに引数違いを20個書き、別クラスに追加するコード書いたんですけど、データだけ取ってきてクラスじゃなくフォームの方に書いた方が分かりやすいですかね?
別フォームでもコンボボックスに同じように追加するのがあるので使い回してるんですけど...

説明下手で申し訳ないですが、ご教授下さい。
0140デフォルトの名無しさん (アウアウエー Sa9f-NVVT)
垢版 |
2018/10/16(火) 23:33:54.56ID:9BmmQZOma
>>139
ワークシートを操作するクラスを作って、そこに列のデータをobject[]かstring[]で返すメソッドを書く

public object[] GetColData(int col) { ... }

それをコンボボックスにセットするコードはForm側に書く。
コンボボックスを引数で渡すような馬鹿なことはしちゃだめ
0141デフォルトの名無しさん (ワッチョイ c7b3-Zu1O)
垢版 |
2018/10/17(水) 01:21:18.71ID:HL5CR6DW0
>>139
1クラスでlist<string>を作る
シート番号、セル開始行、列、セルの終わりを入れる
combobox1.items.AddRange( )で
2 コンボボックスをList化しておく
コンボボックス番号を入れるとitemsにかえしてくれるクラスにする
3 エクセルにコンボボックス番号、シート番号、セル範囲をかいておく
それをコンボボックスのアイテムに入れてくれるクラスを作る
エクセルをいじるだけでコンボボックスのデータができる

こんな感じかな?
0143デフォルトの名無しさん (JP 0Hbb-DjIR)
垢版 |
2018/10/17(水) 08:13:45.91ID:Jp0PkqObH
>>142
Javaは絶対やっといたほうがいいよ。
c#perであれば2日で基本はマスターできるよ。c#と違ってawt,swing,fxは全部使い物にならないからパスでいい。
後はspringframeworkぐらい理解しといたら間違いなし。
Javaは21世紀のCOBOLなんだからあと30年はやっていける。
0147デフォルトの名無しさん (ワッチョイ 7fa5-7Kxw)
垢版 |
2018/10/17(水) 20:08:15.98ID:A92Ghs040
へーJava勉強してみようかなー
ってJavaとJava Scriptの違いをさっき調べて知ったくらいだけどwww
0151デフォルトの名無しさん (ワッチョイ df9b-DjIR)
垢版 |
2018/10/17(水) 21:47:31.88ID:6MaVa97X0
>>140
>>141
ありがとうございます。やっぱコンボボックスの引数はよろしくないですよね。

内容を取ってくるコードって一回で読み取る事は出来ますか?上から繰り返しで配列に入れるんですかね?
0156デフォルトの名無しさん (アウアウカー Safb-dUTK)
垢版 |
2018/10/18(木) 08:17:50.84ID:qf9NxgCDa
個人で作るならだけど、納期に間に合わせる。
バグ作って責任取らされる。
そう言うリスクから離れたいから、仕事じゃ使いたく無いな。

いあ、もう辞めたけど。
0157デフォルトの名無しさん (ワッチョイ 1f9f-ypm2)
垢版 |
2018/10/18(木) 11:20:06.75ID:j6REk5Yq0
リアルタイム通信系なら少しでも高速化するのは理屈通ってるけど
そうでないのなら安定感捨ててまでコンマの差を取るかというと……
って印象であってる?
0158デフォルトの名無しさん (ブーイモ MM17-PhZZ)
垢版 |
2018/10/18(木) 11:44:02.53ID:Mxr2Ur4LM
一般的にはその認識は間違ってる
納期の制約があるなら最初の開発段階での最適化は結果的にアプリケーションのパフォーマンスや品質を下げる原因になることが多い
一度組み上げてから余った時間で最適化やバグ取りをした方が品質はほぼ間違いなく高くなる
0159デフォルトの名無しさん (アウアウエー Sae2-hgbC)
垢版 |
2018/10/18(木) 12:29:09.15ID:kbeEYbP/a
.NETの黎明期から耳タコのはずだけど、そもそも大半のケースは
起動の遅さをパフォーマンスの悪さと錯覚されてるだけw

>>151
プログラムはシンプルに。
何を言ってるのかよく分からないけど、複数の列のデータを一度に返すメソッドを書きたい、
と言ってるなら、そんなことは出来てもやらない方が吉。

そんなのは多分可読性を下げるだけ。
ベタに、
ComboBox1.Items.AddRange(xlSheet.GetColData(5));
ComboBox2.Items.AddRange(xlSheet.GetColData(1));
ComboBox3.Items.AddRange(xlSheet.GetColData(9));
...

こう書いた方がぱっと見て何やってるかわかるでしょ。
こういう羅列がどうしても許せないならTagに対応する列の番号を入れておく方法もあるが、
個人的にはお勧めしないなあ
0160デフォルトの名無しさん (ワッチョイ be81-fIkj)
垢版 |
2018/10/18(木) 15:55:57.15ID:68MDIDIk0
>>152
確かにめっちゃ高速なんだが保守要員の確保はどうなんだ?
0162デフォルトの名無しさん (ワッチョイ e39f-j6wj)
垢版 |
2018/10/19(金) 07:04:52.16ID:vAxKIzRz0
App.configを使わずにサブフォルダからDLLを読み込むようにしたいのですがどうしたらいいですか?
0176デフォルトの名無しさん (アウアウカー Safb-dUTK)
垢版 |
2018/10/20(土) 08:20:31.03ID:Nttc2RvPa
⒊0は日本じゃ売られなかったって誰か教えてやれよ。。。
0178デフォルトの名無しさん (アウアウカー Safb-dUTK)
垢版 |
2018/10/20(土) 09:17:14.34ID:Nttc2RvPa
悪かったよ。
B何てあったんか。
PC98懐かし過ぎて二度見したわw
0179デフォルトの名無しさん (ワッチョイ 6ab3-b3y3)
垢版 |
2018/10/20(土) 09:22:24.86ID:8XvHu+iJ0
>>174
そう言うのもあるだろうけど、俺等の世代はテキスト主体だったけど今の若い奴等は画像メインって言うのが大きい気がする
俺だけかも知れないけど640KBでやりくりして56Kbpsがスゲーって言ってた世代の記憶は一生消えないと思う
0180デフォルトの名無しさん (ワッチョイ bea5-Fc6z)
垢版 |
2018/10/20(土) 10:03:32.03ID:qexLty9p0
Task.Delay()の時間設定ってかなりテキトーですか?
0と1msがあまりにも差がありすぎる気がス
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況