X



ふらっと C#,C♯,C#(初心者用) Part132
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん 転載ダメ (ワッチョイ 1e9a-XSap)
垢版 |
2017/10/09(月) 19:00:56.93ID:Y4203ffV0
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。

内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。

なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

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

■前スレ
ふらっと C#,C♯,C#(初心者用) Part131
http://mevius.5ch.net/test/read.cgi/tech/1504861931/
■関連スレ
C#, C♯, C#相談室 Part94 [無断転載禁止]©2ch.net
http://mevius.5ch.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/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
0006デフォルトの名無しさん (スププ Sdfa-ujyN)
垢版 |
2017/10/09(月) 19:06:32.25ID:qEhozSMZd
>>2
言ってる な
ただの誤字だ
0009デフォルトの名無しさん (スププ Sdfa-ujyN)
垢版 |
2017/10/09(月) 19:08:09.60ID:qEhozSMZd
>>5
内容についてわからないの??
間違ってるって理解出来ないんだ
0011デフォルトの名無しさん (アウアウイー Sa35-qWqy)
垢版 |
2017/10/09(月) 19:08:43.34ID:CACjh+QNa
>>4
普通の使い方と
似たようなクラスがたくさんあってなおかつ継承が利用できない非常にめんどくさい場合
インターフェイスに拡張メソッドをつけたりしてる
本来は使うべきじゃないのかもしれないけど自分でしか使わないからえいやってやってる
0013デフォルトの名無しさん (スププ Sdfa-ujyN)
垢版 |
2017/10/09(月) 19:12:34.89ID:qEhozSMZd
>>12
何度も利用者側に秘密鍵があれば改変したデータを作ってアプリに使えるって言ってるんだけと??
いい加減自分の間違いを認めましょうね
0014デフォルトの名無しさん (アウアウイー Sa35-qWqy)
垢版 |
2017/10/09(月) 19:16:54.72ID:ywmo0VPNa
>>13
それは説明になってない

秘密鍵は暗号化されたデータを解読するものなんだよ
Bは秘密鍵でAからのデータを解読するんだよ
そもそもそこはあってるだろ?

いつどのタイミングで何を改変するんだ?
AからのデータをBが改変する意味は何だ?
0016デフォルトの名無しさん (スププ Sdfa-ujyN)
垢版 |
2017/10/09(月) 19:19:54.84ID:qEhozSMZd
>>14
もしかして秘密鍵から公開鍵が作れるって知らないの??
だとしたら物凄いバカ
0019デフォルトの名無しさん (スププ Sdfa-ujyN)
垢版 |
2017/10/09(月) 19:21:59.25ID:qEhozSMZd
バカが説明を理解出来ないわけがやっとわかった
秘密鍵から公開鍵を生成するって知らないんだな
0020デフォルトの名無しさん (アウアウエー Sa02-sl77)
垢版 |
2017/10/09(月) 19:22:38.11ID:r14Jr9yHa
>>4
これ、テンプレのFAQに入れた方がいい気がするw
今年に入ってから3回ぐらい見た気がするけど俺個人のデジャビューかな
叩く意図はないよ念のため。

俺の回答は、結局実際にどう使われているのか実例を見るのが早い。
>NET Framework(BCL)だってインターフェイス多用してるんだから
0021デフォルトの名無しさん (ワッチョイ 0db3-IS1b)
垢版 |
2017/10/09(月) 19:23:32.82ID:X/uHF4ez0
>>11
ありがとうございます
似たようなクラスがあって継承ができない場合ってどんな感じかイメージつかないですが、集団でプログラミングやると割りと起こる感じなんでしょうか
0024デフォルトの名無しさん (スププ Sdfa-ujyN)
垢版 |
2017/10/09(月) 19:24:03.79ID:qEhozSMZd
>>18
手元にある秘密鍵から公開鍵作って任意の偽データを作成
それをアプリだで不正使用
わかったかなバカ
0028デフォルトの名無しさん (スププ Sdfa-ujyN)
垢版 |
2017/10/09(月) 19:25:13.83ID:qEhozSMZd
>>23
ボケてるのはお前の頭
はやく反論してみろ
0034デフォルトの名無しさん (アウアウカー Sa4d-gkqx)
垢版 |
2017/10/09(月) 19:28:31.27ID:4X7PKmK+a
まだやっとってワロタ
0036デフォルトの名無しさん (スププ Sdfa-ujyN)
垢版 |
2017/10/09(月) 19:29:09.08ID:qEhozSMZd
>>30
いやお前が理解できてないだけ
タイミングなんてアプリがデータを利用するときに偽のデータをわたすだけだろ
理解しろバカ
0041デフォルトの名無しさん (スププ Sdfa-ujyN)
垢版 |
2017/10/09(月) 19:31:35.40ID:qEhozSMZd
>>32
アプリの不正な使用方法を考慮しない頭のお前は最底辺レベル
0043デフォルトの名無しさん (スププ Sdfa-ujyN)
垢版 |
2017/10/09(月) 19:32:52.29ID:qEhozSMZd
>>38
まともに答えてるのに理解できないバカ
そうやって逃げるのかな??
0045デフォルトの名無しさん (スププ Sdfa-ujyN)
垢版 |
2017/10/09(月) 19:35:05.92ID:qEhozSMZd
このバカは早く自分の間違いと無知さを認めてごめんなさいしような
0047デフォルトの名無しさん (ワッチョイ fa27-zNAK)
垢版 |
2017/10/09(月) 19:53:35.93ID:oNj7uBjL0
>>24
暗号化されたデータが例えば有料コンテンツとかなら、利用者(Bを持ってる人)が偽のデータを作る意味はない
利用者が偽のデータを作るのを良しとしないなら、配布者が別に署名すれば良い

ただし、利用者はそもそもアプリBを改造して、任意の動作をするようにすることが可能なので自分が偽データを作る意味はない話
0048デフォルトの名無しさん (アウアウイー Sa35-qWqy)
垢版 |
2017/10/09(月) 20:03:10.67ID:ywmo0VPNa
>>41
前から書いてるけど公開鍵のデータが復号できたからそれが正しいデータとは保障されない
正しいデータかどうかを保証するのは別の段階の話

クライアントで不正なデータを基に何をやってても
サーバサイドの情報と不整合なら不正が起こったと判断されて終わる

クライアントで預金を1億に増やしてもサーバでは元のママ
0049デフォルトの名無しさん (スププ Sdfa-ujyN)
垢版 |
2017/10/09(月) 20:04:13.58ID:qEhozSMZd
>>47
一行目はその通り。でも違うケースだって考えららる。なら、それを考慮するのは当然のこと
二行目は質問者への答えてではない
最後についても一行目と同様
0051デフォルトの名無しさん (スププ Sdfa-ujyN)
垢版 |
2017/10/09(月) 20:09:33.18ID:qEhozSMZd
>>48
不正な使用をできることが問題になるケースもあるだろバカ
0054デフォルトの名無しさん (スププ Sdfa-ujyN)
垢版 |
2017/10/09(月) 20:11:59.38ID:qEhozSMZd
>>50
は?
話を理解出来ないバカ
その密鍵
0059デフォルトの名無しさん (スププ Sdfa-ujyN)
垢版 |
2017/10/09(月) 20:14:35.77ID:qEhozSMZd
>>50
その秘密鍵云々は本来サーバーにありばき秘密鍵をブラウザが持ってるという例えて間違ってると言ってるんだけど理解出来ないのバカ
0065デフォルトの名無しさん (スププ Sdfa-ujyN)
垢版 |
2017/10/09(月) 20:20:11.31ID:qEhozSMZd
>>55
はあ?頭悪すぎ
秘密鍵は外部にあって複合化は外部で行う意味も理解出来ないの??
0067デフォルトの名無しさん (スププ Sdfa-ujyN)
垢版 |
2017/10/09(月) 20:21:25.58ID:qEhozSMZd
>>61
すみません
そこは適当なもので
0068デフォルトの名無しさん (スププ Sdfa-ujyN)
垢版 |
2017/10/09(月) 20:26:38.12ID:qEhozSMZd
バカが逃げたようでスッキリした
0072デフォルトの名無しさん (ワッチョイ 7d80-NGd4)
垢版 |
2017/10/09(月) 20:47:52.74ID:Uib+y8KD0
さきほどXmlシリアライズについて質問したのですがシリアライズ可能なクラスはデフォルトコンストラクタとクラス変数のみのクラスという理解でいいでしょうか?
0073デフォルトの名無しさん (アウアウカー Sa4d-gkqx)
垢版 |
2017/10/09(月) 20:53:36.34ID:4X7PKmK+a
C#で組んだごく一般的な業務ソフトで1万行ってボリューム的にどんなもんですか?
0076デフォルトの名無しさん (アウアウイー Sa35-qWqy)
垢版 |
2017/10/09(月) 21:18:26.29ID:ywmo0VPNa
>>72
関係ないけどjava, python, rubyなどにあるクラス変数はc#では静的フィールドというもので
宣言にstaticがついててクラス自体に付随するものでシリアライズの対象じゃないです

インスタンスごとにある変数はインスタンスフィールド
0077デフォルトの名無しさん (アウアウエー Sa02-sl77)
垢版 |
2017/10/09(月) 21:35:42.93ID:r14Jr9yHa
MSDNライブラリ、過去のバージョンのドキュメントが選択できなくなったり
2.0以前の古いバージョンのドキュメントがごっそり削除されたり、知らん間にいろいろ改悪されてるな

MSって本当いらんことするよね
0080デフォルトの名無しさん (アウアウエー Sa02-sl77)
垢版 |
2017/10/09(月) 21:53:55.76ID:r14Jr9yHa
2.0じゃなくて1.1以前か
たとえばちょっと前に話題になったこれとかなくなってる
https://webcache.googleusercontent.com/search?q=cache:WQiXtXkwbR0J:https://msdn.microsoft.com/ja-jp/aa691135(v%3Dvs.71)+&cd=1&hl=ja&ct=clnk&gl=jp&lr=lang_en%7Clang_ja

読みたきゃローカルにダウンロードして読めとさw
Win10で田ミ + F1押した時に近い怒りを感じるね
0081デフォルトの名無しさん (ワッチョイ fa27-lr6/)
垢版 |
2017/10/09(月) 23:54:00.00ID:wnhU5HD50
>>49
それを言いたいなら「全てのケースに対応できる方式は存在しない」と主張しないと
初心者が完全な要求仕様を一発で提示するのは難しい
不完全な要求仕様が提示されたら、ある程度補って「これでやりたいこと満たせる?」って確認してみるのはよくあるパターン

もし「B側が改ざんしたデータを読み込ませるのを防ぎたいです」と言われたら署名を追加提案するし、「アプリが改ざんされると困る
というなら、耐タンパのハードウェアを用意するしかないんじゃないというし
0083デフォルトの名無しさん (ワッチョイ 7d80-NGd4)
垢版 |
2017/10/10(火) 02:07:14.95ID:ILyTWDei0
TreeViewクラスだとGetNodeAt関数にマウスのx、y座標を渡せば対象のTreeNode返してきますが
TabControlにはGetなんとかで探してみましたが見つかりませんでした、そういった関数はないのでしょうか?
0086(スフッ Sdfa-xAgn)
垢版 |
2017/10/10(火) 18:09:11.73ID:DF0+rUlsd
公開鍵の中に、別の署名入れときゃ良いだけなのにな。
0087デフォルトの名無しさん (ワッチョイ 41f9-qWqy)
垢版 |
2017/10/10(火) 19:00:46.52ID:86WPBtAo0
Format8bppIndexed形式のBMPファイルをpictureboxに読み込んで、
それをリネームして同じくFormat8bppIndexed形式のBMPファイルで保存したいのですが、
どのようにすればよいでしょうか。
PictureBox.ImageLocationプロパティではFormat8bppIndexed形式は蹴られてしまいます・・・

また、形式を変えてpictureboxに表示させることは出来たのですが、
それをまたFormat8bppIndexed形式に変換して保存するところでつまづいてしまいました。
0088デフォルトの名無しさん (ワッチョイ 769a-XSap)
垢版 |
2017/10/10(火) 20:03:58.53ID:ZqwUWY4/0
>>87
試してみた
>PictureBox.ImageLocationプロパティではFormat8bppIndexed形式
読み込める
そしてそのままPictureBox.Imageを保存(pictureBox1.Image.Save)するとインデックスカラーになった
元の画像のフォーマットが間違っているか特殊では?
別の画像で試してみろ
あとGDI+で24bpp/32bppにした画像はインデックスカラーに可逆で変換できないはず
自分でパレットテーブルと画素データ作らないといけない
0090デフォルトの名無しさん (ワッチョイ 769a-XSap)
垢版 |
2017/10/10(火) 23:26:31.15ID:ZqwUWY4/0
>>89
タブ以外のところなら各ページのMouseDownイベントのsender
タブのところならTabControl.SelectedIndexChangedイベントでSelectedIndexかSelectedTab.Nameで取れる
そっちはx,yにしているから目的は違いそうだが
0099デフォルトの名無しさん (ワッチョイ e980-tBve)
垢版 |
2017/10/14(土) 04:28:03.00ID:VMil0wNI0
TabControlとTabPageがあり、TabPageの中にWebBrowserコントロールがあるのですが、TabControlを触るとWebBrowserのフォーカスが外れてしまい
一度WebBrowserの中をクリックしないと動きません、マウスポインタがWebBrowser上にある場合クリックしなくても自動的にフォーカスを移したい場合どうすればいいでしょうか?
0102デフォルトの名無しさん (ワッチョイ 8b9a-BSx0)
垢版 |
2017/10/14(土) 11:06:25.42ID:+aeiapeN0
>>100
TabPage.Enterで(this.Activate()と)Tabpage.Focus()ですねw
>>101
同意するけど自分で使うだけらしいからw
>>99
>TabControlを触るとWebBrowserのフォーカスが外れて→TabControlを触ったあとでWebBrowserをFocus()
質問の時点で答え出ている気がする。Focus()は知っているだろうし
それよりもTabControl触っただけでTabPage上のコントロールのフォーカスは外れない
右クリックからコンテキストメニュー呼出しても別のタブでMouseDownイベント起こしても
WebBrowserが影響しているかもしれないが、それを調べないと対策しても後から別の問題が多分出てくる
0103デフォルトの名無しさん (ワッチョイ 09b3-7vf9)
垢版 |
2017/10/14(土) 21:19:17.73ID:2Frxw1Uc0
visual studio for macを昨日から使い始めました
コンソールプロジェクト その他→.NETを選択してソリューションを作成しているのですが.NET内のクラスを呼ぶとエラーが出ます
using Systemの記述以外に必要なことがあれば教えていただきたいです
0107デフォルトの名無しさん (ワッチョイ 09b3-7vf9)
垢版 |
2017/10/14(土) 22:12:08.04ID:2Frxw1Uc0
>>104-106
参考書を読みつつ進めていて
DateTime today = DateTime.Today;でエラーが出ます
呼び出したいのは構造体でした
MSのリファレンスではこのように書かれています
名前空間: System
アセンブリ: mscorlib

レス書きながら参照の編集→アセンブリ弄っていたらエラー吐かなくなりました
もしかするとusing System;を書いていなかっただけかもしれません、申し訳ないです
エラーメッセージも今後は載せます
0117デフォルトの名無しさん (ブーイモ MM33-89ZN)
垢版 |
2017/10/15(日) 16:04:17.23ID:64liGYG7M
ずっとグラフコントロール見てたけど
前だったら商用が一番おすすめだったけど
今はもうwebのフリーのコントロールに負けてるので金を払ってまで使う必要あるのかと思う
0127デフォルトの名無しさん (アウアウウー Sa1d-FoSE)
垢版 |
2017/10/15(日) 17:24:10.76ID:q3I9S/toa
質問者に言っておくけど、要件を厳密に定義しないとこういう流れになっちゃう。

「formのサイズに合わせて、labelが拡大縮小」
「ォームの大きさに合わせて、ラベルの文字が大小するという感じ」

これどっちも曖昧だって。
要件っていうのは解釈や忖度や妄想の余地がないように厳密に定義しなきゃ
0129デフォルトの名無しさん (ブーイモ MM33-89ZN)
垢版 |
2017/10/15(日) 17:33:14.07ID:64liGYG7M
スペースが事前に決めてあってその中いっぱいに表示したいならviewbox
サイズを細かく指定したいなら向いていない
左右に二個並べてあって中身が違うにもかかわらず左右の表示を会わせたい→死
0131デフォルトの名無しさん (ワッチョイ 8b9a-BSx0)
垢版 |
2017/10/15(日) 19:26:58.15ID:boo3QsX80
>>127
実際に作るものはともかくここでの流れまで初心者に言っても
最初から要件を細かく定義できるのならググったほうが速いし
質問の仕方から見て>>109>>113で十分かと
>>108
WPFはわからないのでWinForm+>>109で仮に作るとこうなる(Labelだけ対応)
https://ideone.com/BWg19a
ここまでは簡単で破綻しないように調整しようとすると面倒。自分では使わないw
この段階でたぶん座標とサイズがintでフォントサイズがfloatのせいで最後の文字で時々失敗する
0132デフォルトの名無しさん (ワッチョイ 2b33-9GRr)
垢版 |
2017/10/15(日) 19:43:17.05ID:H5qn+0zu0
Windows10のOS寄りの話になっちゃうかもしれませんが、
タスクバーとかその上にくっ付いてるコントロールの透明化を一時的にでも止める方法あったら教えてください。
0135デフォルトの名無しさん (ワッチョイ d106-BSx0)
垢版 |
2017/10/15(日) 20:32:23.95ID:+yNynBs60
UWPだと、画面のサイズに依ってフォントのサイズどころかコントロールのレイアウトから何から何まで変更することが可能です
VisualStateManagerとAdaptiveTriggerってのを使うんだが、ちょっと説明には骨が折れるから興味ある人はググってね

単純なものでも、この複雑さだからね
https://blog.naotaco.com/archives/840
0151デフォルトの名無しさん (ガックシ 06eb-dPak)
垢版 |
2017/10/16(月) 10:51:30.20ID:yXhtcONm6
>>148
LINQ難しくて嫌いだからってケチ付けるなよwwwwwwwww
0156デフォルトの名無しさん (アウアウウー Sa1d-FoSE)
垢版 |
2017/10/16(月) 11:07:49.77ID:kQRYApqGa
>>142はLINQ好きじゃない俺でも十分読める
ちょっと思ったけど
A.Reverse().Zip(B.Reverse(), (a, b) => a > b).Take(5).All(x => x);
こっちの方がいい気が

Tがboolの時predicatorじゃなくて要素そのものを評価するオーバーロードってないんだね
0157デフォルトの名無しさん (ワッチョイ 53ef-L4Sv)
垢版 |
2017/10/16(月) 11:17:17.26ID:kTlR9ez60
>>142
ありがとうありがとう
なんでかTakeLastが使える(最近追加された?)んでリバースなくて行けました
けどめちゃくちゃ遅かった…

ちょっとLinqでやるんが無理だったんかな、でもすごくためになりましたありがとう
0158デフォルトの名無しさん (ガックシ 06eb-dPak)
垢版 |
2017/10/16(月) 11:18:16.37ID:yXhtcONm6
>>155
こんなに普及してるjQuery全否定か
0160デフォルトの名無しさん (ガックシ 06eb-dPak)
垢版 |
2017/10/16(月) 11:22:50.09ID:yXhtcONm6
しかも最近流行りの状態を持たない関数型プログラミングだし
0161デフォルトの名無しさん (ワッチョイ 798a-iAGE)
垢版 |
2017/10/16(月) 14:46:59.09ID:L72cxc6g0
SQL使ってた人にはLINQは分かりやすいけど長いと読む気なくすのはSQLも同じ
0163デフォルトの名無しさん (ワッチョイ 7ba1-VbOk)
垢版 |
2017/10/16(月) 15:12:28.85ID:tCfKnGA20
TrackBar のツマミを、タッチ操作用に大きくしたいんですが、どうすればいいんでしょうか。
検索しても解決に至っていない質問がちらほらあるぐらいです。もしくはこれでもかってぐらい
自分で書いたオリジナルのトラックバーとか。
そこまでしなくても、ツマミが大きくできるだけでいいのですが。
0164デフォルトの名無しさん (ワッチョイ 798a-iAGE)
垢版 |
2017/10/16(月) 15:21:38.99ID:L72cxc6g0
>>162
別物(キリッ)とか言われても
同じだなんて言ってないけど

ただ取っ掛かりの部分でSQLの知識が活かせるから個人的には学習コスト低かったし、
逆にSQL知らない子に教えて慣れさせるのには苦労したわ
0167デフォルトの名無しさん (ワッチョイ 798a-iAGE)
垢版 |
2017/10/16(月) 15:58:03.25ID:L72cxc6g0
>>165
そう思ってるのお前だけだからクエリ式があるんだろ
悟れよ
0168デフォルトの名無しさん (ワッチョイ 798a-iAGE)
垢版 |
2017/10/16(月) 15:59:01.02ID:L72cxc6g0
>>166
面食らうのはわかるけどすぐ慣れるでしょ
0177デフォルトの名無しさん (ワッチョイ 09b3-iAGE)
垢版 |
2017/10/16(月) 18:19:09.19ID:Jb7W9hCC0
リファクタリングって実際にやる事って多いのでしょうか?
とりあえず動くものを作ると手直しが大変で、設計を考えてから作るならそんなにリファクタリング起こらない様な感じもしますが
後から機能追加していくと分割しようとかってのもあるのでしょうか
0179デフォルトの名無しさん (アウアウカー Sad5-vbd7)
垢版 |
2017/10/16(月) 18:40:53.97ID:ls7B8y8Ka
むしろそんなんばっかで嫌になる
最初の仕様書もっぺん見てみろや禿げと言いたくなるね
0180デフォルトの名無しさん (ワッチョイ 798a-iAGE)
垢版 |
2017/10/16(月) 18:51:38.88ID:L72cxc6g0
>>174
じゃあお前はILで書ければC#要らないんだろうな高学歴さん
そもそも糖衣構文なんてどれも使い方次第だろ
言われないとわからんか?
0182emanの物理学ってサイトわかりやすいな (ワッチョイ 7916-dPak)
垢版 |
2017/10/16(月) 19:03:30.59ID:8ymsOkDP0
教科書見ても全然わからんかったのにスイスイ理解できる
0183emanの物理学ってサイトわかりやすいな (ワッチョイ 7916-dPak)
垢版 |
2017/10/16(月) 19:03:49.47ID:8ymsOkDP0
ミスった
0187デフォルトの名無しさん (ワッチョイ 9319-BSx0)
垢版 |
2017/10/16(月) 19:30:37.46ID:TyTVOwnW0
>>177
一度書いたコードは問題なく動いている限りリファクタリングなんてすることは無いよ。
リファクタリングする工数なんて何処にも無いからね。

元のコードを大きく改変する必要があるとか類似システムを作るときは
思い切ってリファクタリングするけどね。そっちの方が品質も安定するし早いから。
ま、そんだけ元のコードが酷いって事さwww
0188デフォルトの名無しさん (ワッチョイ 09b3-iAGE)
垢版 |
2017/10/16(月) 19:30:40.89ID:Jb7W9hCC0
>>184
主力製品の機能変更で売ってくようなスタイルだと機能追加の度にコードが増えてくけど、その度に仕様変更でバグが混入する可能性があるからコード直ししたいとかあるってパターンもあると思います
既に基底が整備されてるとかプロジェクト毎に違う製品作るパターンならこういうことは無いと思いますが
0190デフォルトの名無しさん (ワッチョイ 09b3-iAGE)
垢版 |
2017/10/16(月) 19:38:56.50ID:Jb7W9hCC0
>>189
あくまでお客とのやり取りではなく、コードは会社の資産という観点でリファクタリングするという考えですね

お客の要望で機能追加する前提のものなので、そこで保守するコストやバグによる信用低下からプログラムそのものの価値が下がるって概念になると思います
まぁ実際はリファクタリングするには大きすぎるので理想はあっても実行は中々できないと思いますが
0193デフォルトの名無しさん (ワントンキン MMd3-pbEI)
垢版 |
2017/10/16(月) 20:21:04.95ID:rY47nFh2M
レガシーシステムに手をつける前に必ずリファクタリングするって常識でしょ
レガシーシステムは恐ろしいスパゲティの塊なのでそのまま手を出すとあっという間に破綻する
まずはリファクタリングで保守可能な状態を作らなければならない
最悪でも拡張する機能をテスト可能な状態にすること
顧客がバカでコミットできない場合でも知識を得るためにリファクタリングが最適
腐ったコードはどれだけ読み込んでも理解できない
0194デフォルトの名無しさん (アウアウオー Sa63-qY8G)
垢版 |
2017/10/16(月) 20:21:22.23ID:BTwHB29Wa
>>190
いや今まで設定ファイルから読んでたけど
ネットワークから取得するわ
一括ではなく個々のデータを使用するときに常に最新データを個別に取得するわ
ってなったら絶対無駄になるよね?
0196デフォルトの名無しさん (ワッチョイ 09b3-iAGE)
垢版 |
2017/10/16(月) 20:29:25.51ID:Jb7W9hCC0
>>194
それで無駄になるケースってどういう場面でしょうか?
設定ファイルとコードが依存してなければ設定ファイルの取得部分の追加変更でリファクタリング自体は無駄にならないと思いますが
変更できないような設計なら確かに無駄になると思いますが・・・
0200デフォルトの名無しさん (アウアウオー Sa63-qY8G)
垢版 |
2017/10/16(月) 20:34:54.38ID:BTwHB29Wa
設定ファイルは起動時に1回一括で読み込むだけかも知れないね

でもネットワークからデータが必要になるたびに個別に最新を取得だから
ぶっちゃけ対応できないんじゃないかな?
0203デフォルトの名無しさん (スフッ Sd33-iAGE)
垢版 |
2017/10/16(月) 20:38:05.31ID:Pq8+tcNCd
ID:BTwHB29Waが何言ってるかわかるエスパーいる?
0205デフォルトの名無しさん (ワントンキン MMd3-pbEI)
垢版 |
2017/10/16(月) 20:55:07.11ID:rY47nFh2M
>>204
仕様変更ってリファクタリングしててよかった〜って一番実感するときだろ
まあやったことない人にはわからない感覚だとは思う
リファクタリングに工数かかるのは事実だから
目の前のコストしか見えない人だってそりゃいるよね
0208デフォルトの名無しさん (ワントンキン MMd3-pbEI)
垢版 |
2017/10/16(月) 21:05:31.13ID:rY47nFh2M
>>207
設定ファイル一括読み込みクラスをリファクタリングして
設定問い合わせインターフェースにする
設定ファイル一括読み込みクラスは設定読み込みインターフェースを実装する

設定読み込みネットワークになったわー読み取りは毎回取り直しだわ〜ってなったら
設定テーブルセレクトクラスを作る
設定テーブルセレクトクラスは設定読み込みインターフェースを実装する

DIの設定を変更して終わり
簡単だろ?
0209デフォルトの名無しさん (ワントンキン MMd3-pbEI)
垢版 |
2017/10/16(月) 21:06:54.06ID:rY47nFh2M
>>208
誤字訂正

>設定ファイル一括読み込みクラスは設定読み込みインターフェースを実装する
設定問い合わせインターフェースを実装する

>設定テーブルセレクトクラスは設定読み込みインターフェースを実装する
設定問い合わせインターフェースを実装する
0211デフォルトの名無しさん (アウアウオー Sa63-qY8G)
垢版 |
2017/10/16(月) 21:12:10.02ID:BTwHB29Wa
設定ファイル一括読み込みクラスは会社の資産とのことだけど
どこ行くの?

また、設定ファイルから読み込むこともあるかも知んないから残しとく?
別の会社に売ったら
「うちはいちいちネットワークなんて繋げなくていいよ」
って言うかもね
こっちもサポートし続ける?
捨てちゃう?
0212デフォルトの名無しさん (ブーイモ MM0d-89ZN)
垢版 |
2017/10/16(月) 21:15:35.05ID:HJ2RVhMCM
>>195
業態によるんじゃないかな
客先の社内に入ってる常駐型とかweb開発では継続的インテグレーションが当たり前
納品して終わりのシステムなんて大手は少ないんじゃないかな?
0213デフォルトの名無しさん (ワントンキン MMd3-pbEI)
垢版 |
2017/10/16(月) 21:16:23.03ID:rY47nFh2M
リファクタリングしてないと組み直しになる
ネットワークから取ってくるって機能に切り替えたいだけなのに
なぜか設定読み込み処理そのものやそれを呼び出してるところを一生懸命調べたり直さなきゃならない
本当にやりたいことはそんなことじゃないのに!

リファクタリングしてあればまさにネットワークから取ってくる処理を追加するだけで済む
既存の処理はそのまんま
やりたいことを過不足なくやるだけ

解放閉鎖原則ってやつだね
0214デフォルトの名無しさん (ワッチョイ e9c9-BSx0)
垢版 |
2017/10/16(月) 21:18:26.26ID:LfvhrZmO0
>>212
継続案件でも納得してリファクタリングに金払う客居たら見てみたいわ
どうにもならなくなった糞コードを何とかする手段としてリファクタリングを使うケースは偶に見かけるけど
0221デフォルトの名無しさん (ワントンキン MMd3-pbEI)
垢版 |
2017/10/16(月) 21:23:54.08ID:rY47nFh2M
>>217
それもリファクタリングしてあれば簡単にできるよ
単に設定ファイル読み込みクラスとネットワーク問い合わせクラスのミックスインを作るだけ
実装するのにまあ15分もかからないと思うね
リファクタリングしてなかったらこれは絶望的だよ
0222デフォルトの名無しさん (ブーイモ MM0d-89ZN)
垢版 |
2017/10/16(月) 21:24:30.99ID:HJ2RVhMCM
>>214
MacはOSを途中で変えた
古いOSは改修に次ぐ改修で複雑に絡み合いリファクタリングすらできず
将来性がなかったから

windowsだって10までバージョンがあがったけど
そこまでのOSの変更費用は利用者が払ってる
将来性や利点があるならちゃんと説明して金をとるべき
0223(ワッチョイ 7b99-b3d+)
垢版 |
2017/10/16(月) 21:26:54.92ID:Qeq9VPfc0
リファクタリングは組み直しだろ。
なんでやるのかっつーと、いろんな意味でその次を楽にするため。
次の改修だったり、次の案件に使いたかったり。
ただし、それは改修と併せてやってはいかん。
改修、つまり「今より良くするもの」「悪いものを直すもの」の正しい評価ができん。

会社でやるなら、金の出処は研究開発扱いとしてやるしか無い物だと思うわ。
機械で言うと「新素材の研究が一段落していい感じだったんで、それ使ってネジのコストカットしました」とか「量産安定してきたんで金型のランナーをちょっと樹脂ケチる感じに引き直しました」とかそんなレベルの話。
もし客にバレたなら、単なる不具合の改修でしかない。
0224デフォルトの名無しさん (ワントンキン MMd3-pbEI)
垢版 |
2017/10/16(月) 21:26:56.03ID:rY47nFh2M
>>220
それも簡単に対応できるね
ネットワークの状態を見てスイッチングするデコレーターを作るだけでしょ

リファクタリングしてなかったらあっという間に炎上する案件だよねこれって
0229デフォルトの名無しさん (ワントンキン MMd3-pbEI)
垢版 |
2017/10/16(月) 21:33:19.62ID:rY47nFh2M
>>225
仕様はあるんだろ?
それ見て作ればいいだけ

なんならそれも設定から読むようにしようか?
ルート設定情報を見てファイルかネットワークか選ぶ
ネットワークが死んでたら何回かリトライ
それでもダメならファイルから
ファイルがダメなら埋め込みデフォルト値
みたいな感じで

リファクタリングしてれば簡単にできるぞ
0230(ワッチョイ 7b99-b3d+)
垢版 |
2017/10/16(月) 21:34:59.19ID:Qeq9VPfc0
>>193
不思議なもんで、理解はできるが、なんでこうなってんのかわかんねえ、って半日悩んで、スクラッチすっか、と最低限の条件からだんだん込み入った事書いてくと最終的に「これ最適解じゃん。すげぇ」ってなる事あるな。
Fortranの処理系のメンテしたほうがマシ、と言う結論に至った事がある。

>>226
次の仕様に合わせてやるのは、対応。
そうじゃなくて、「これ事故りそうだな、今手が空いてるから直しとくか」がリファクタリング。
フツーに仕事してたら納期次第で不味い手を打たざるを得ない事もあるしな。
32767回目で死ぬ事がわかってる、年に100回しか打たれないはずのコマンド、とか。
何故かそういう物に限って変な活用されたり、10年生きてたりする。
0231デフォルトの名無しさん (アウアウオー Sa63-qY8G)
垢版 |
2017/10/16(月) 21:35:00.32ID:BTwHB29Wa
そもそも設定ファイルの読み込みルーチンだけど
すでに納めた客の対応はどうするの?
変えちゃうのはいいけどさ
動いて無いとまずいんちゃう?

インターフェースで対応できるの?
0234デフォルトの名無しさん (ワントンキン MMd3-pbEI)
垢版 |
2017/10/16(月) 21:36:12.54ID:rY47nFh2M
>>226
仕様が曖昧なときほどリファクタリングは有効だよ
リファクタリングしてないと全く身動き取れない
リファクタリングしてあれば暫定で進められる
確定したらごく僅かな工数で本実装に切り替え可能
仕様が確定するまでの待ち時間の金は誰が払うんだ?
あれがこれが決まってないから進められないなんて泣き言は顧客は聞いてくれないぞ?
0236デフォルトの名無しさん (アウアウオー Sa63-qY8G)
垢版 |
2017/10/16(月) 21:39:10.27ID:BTwHB29Wa
そんなパッケージ販売みたいの視野に入れるなら
○○様向け読み込み処理とか
すっげー勢いででき続けるけどな
すでに動いてる部分をぶっ壊すなんて最早正気ではないな
0237(ワッチョイ 7b99-b3d+)
垢版 |
2017/10/16(月) 21:39:22.24ID:Qeq9VPfc0
充分にモジュール化されてれば、可換な筈だからな。
それが仕様。
中身がどう変わろうが、口はUSBです。これも仕様。
口がどう変わろうが、テキストの電文でやりとりしてます。これも仕様。

どんなキーボード繋いでもHIDデバイスとして認識出来れば文字が打てます。そんなもん。
ボタンの改良でパソコン買い替えてたら世話無いだろ。
0239(ワッチョイ 7b99-b3d+)
垢版 |
2017/10/16(月) 21:41:47.00ID:Qeq9VPfc0
>>236
パッケージ売りするなら、で全然パッケージ売りしてねえじゃんw
普通は帳票パックとか売るんじゃねえの?ソフト屋って。

コストで悩むのは理解できるが、だから研究開発費なんだよ。
0246(ワッチョイ 7b99-b3d+)
垢版 |
2017/10/16(月) 21:49:50.50ID:Qeq9VPfc0
>>242
なんで個別対応で金取れるかわかってる?
個別対応部分が可換だからだろ?
単に経験浅すぎて仕組みがわかってないだけだと思いたいな。
0248(ワッチョイ 7b99-b3d+)
垢版 |
2017/10/16(月) 22:03:15.56ID:Qeq9VPfc0
>>247
なんで一つのソースにしちゃうかな?
インターフェイスが統一されてれば、違うソース、違うリポジトリで充分でしょ?
扱うデータが違うのに云々ってのは、コンテナ形式のファイル見たら皆がどうやって回避してきたか理解できると思うわ。
DICOMまでガチの話でもなく、tiffファイルのフォーマット眺めるだけで充分わかる。
0251(ワッチョイ 7b99-b3d+)
垢版 |
2017/10/16(月) 22:12:07.91ID:Qeq9VPfc0
>>249
内容に惑わされ過ぎだろ。
始点と幅と高さでできてる四角(四角A)と、中点と幅と高さで出来てる四角(四角B)であろうと、
ただのデータなんだから。
「四角」ってスーパークラス切り出して、「どちらかはわからんが、四角には変わりない。どっちかはそれぞれ読み手が考えるように。」ってデータ型を用意するのがリファクタリングだよ。
そしたら、図形ってデータ型が出来たり、面積のある図形ってインターフェイスが出来たりするだろうね。
typeof演算子の存在意義に疑問を持ってる類の人間なのかな。
0252(ワッチョイ 7b99-b3d+)
垢版 |
2017/10/16(月) 22:13:13.51ID:Qeq9VPfc0
インターフェイスについて突っ込まれそうだけど、シリアライズしてXMLにでもしときゃ、容量は食うだろうけど、C#でならだいたい何とかなる。
0253デフォルトの名無しさん (アウアウオー Sa63-qY8G)
垢版 |
2017/10/16(月) 22:20:04.33ID:BTwHB29Wa
>>251
あめーんだよ
お前想像力がたんねーから
インターフェースでなんでも対応できる気がすんだよ

ちなみに中点、右幅、左幅、上幅、下幅指定は中点で回転するからその指定で回転角も付く
同じ四角だってすでに別もんの場合もある
こういうのたくさんあり過ぎて現実にはインターフェースなんてなんの役にもたたねーだろ
0255デフォルトの名無しさん (アウアウオー Sa63-qY8G)
垢版 |
2017/10/16(月) 22:36:38.15ID:BTwHB29Wa
>>254
じゃあ、さっきのネットワークからデータをとる話にしたってバカがインターフェースで対応できるとか言ってたけど
実際はデータ毎に取得日時も保存しておかないと
最新かどうかわからないよねw

アホだからこんなもんで対応できると思うんやで
0262デフォルトの名無しさん (ワッチョイ 5975-dPak)
垢版 |
2017/10/16(月) 23:04:07.75ID:LTsOqA5h0
伸びすぎだろ
おまえらってこういう話題になるとイキイキするのな
会社ではモテない頼りない無能社員のくせに
0263(ワッチョイ 7b99-b3d+)
垢版 |
2017/10/17(火) 00:34:03.66ID:GZgPL7cm0
>>253
だから、統一できるコンテナフォーマットな形式のデータ入れに突っ込んでしまって、
必要な奴が必要な分だけパースするんよね。

ホントに実務経験あるの?甘くない?

>>255
横からだけど「取得したデータ」は「取得した何か」を継承してたり、「取得した日付」を取得するインターフェイスがあれば充分でしょ。

無知でした、ごめんなさい。が言えるのもエンジニアとして大切だと思うが、いかがなもんかのう。
0267デフォルトの名無しさん (ワッチョイ 798a-BSx0)
垢版 |
2017/10/17(火) 01:10:49.63ID:0KKPzkG80
スレチ指摘されても理解できない頭のヤツにリファクタリングの必要性説いてどうすんの
0269デフォルトの名無しさん (ワッチョイ 13a5-h3/e)
垢版 |
2017/10/17(火) 19:01:31.69ID:YbpTy6K90
最近独学で勉強始めたんだけど難しすぎる…
自分で考えたり工夫する能力がないんだろうな
自分がやりたい事と全く同じサンプルが無いと何も出来ない
みんなどうやって見につけたんだ?
やっぱアホには無理なのかな
0270デフォルトの名無しさん (ワッチョイ 199a-BSx0)
垢版 |
2017/10/17(火) 19:09:25.19ID:exorZDFN0
>>269
できることからやればいい
できないことをやろうとすると達成感が得られなくてやる気が無くなるループになる
自分の頭の中で必要な要件を切り分けられないものには手を出すな
サンプルは全く同じものがあるはずがないので近いものを探す。一つだけでなくいくつも探す
0273(ワッチョイ 7b99-b3d+)
垢版 |
2017/10/17(火) 19:38:37.05ID:GZgPL7cm0
>>269
やりたい事を初めて見た他人が代わりにできるくらいのメモにまとめて、それをコードに落としていけば良いんじゃない?
最初は言語の機能全部使う必要無いんだから。
そのうち、これ毎回書くな…とか思ったら、そういう機能があるかどうか調べたら良い。大体ある。
0274デフォルトの名無しさん (ワッチョイ 13a5-h3/e)
垢版 |
2017/10/17(火) 19:53:24.64ID:YbpTy6K90
>>269です
レスありがとう
最近仕事で使うことになって人生初のプログラミングを経験中なんだけど何もかも分からないから質問も出来ないし、しても分からないし、何回か聞くともっと自分で考えてやれみたいな感じだから毎日悩みっぱなしだ
出来ることから地道にやれたら良いんだけど仕事だからなかなか厳しいね…

とりあえず独習って本を読んだり試してまずは基礎をしっかり理解するようにしてる
みんなもひたすらサンプルを書いたりして理解して行った感じなのかな
0278デフォルトの名無しさん (ガックシ 06eb-dPak)
垢版 |
2017/10/17(火) 20:33:14.23ID:FJCAd6676
C#が難しいってオブジェクト志向な設計が難しいってこと?
0280デフォルトの名無しさん (ワッチョイ 798a-BSx0)
垢版 |
2017/10/17(火) 21:04:44.09ID:0KKPzkG80
>>275
それは他言語経験者の感想やろ
0285デフォルトの名無しさん (ワッチョイ e9c6-BSx0)
垢版 |
2017/10/17(火) 22:22:32.10ID:umFbfT/c0
最初、文法だけを説明している入門書(猫でも〜)で勉強したけど
「インターフェース? 規約だけを定めたもの? 具体的に何の役に立つんだ?」
「構造体? クラスとどう使い分けるんだ?」
「デリゲート? C/C++の関数へのポインタみたいなもの? Cなんて知らんがな」
みたいな疑問が次々と湧くのに解決されないまま、文法の丸暗記だけしてる感があってしんどかった
サンプルコードも、最低限の説明用のシンプルすぎるもので、実用性っぽいものが皆無だったし

もう少し丁寧に解説してる本から始めればよかった
0286デフォルトの名無しさん (ワッチョイ 13a5-h3/e)
垢版 |
2017/10/17(火) 22:37:26.16ID:YbpTy6K90
>>284
ありがとう
馬鹿だから質問すらなんて聞いて良いか分からないんだけどね

入門書みたいなのは何冊か読んだり試したりして、コード見ればぼんやりこういう事してるんだなっていうのは分かるんだけど、いざ自分で1からやろうと思うと何も書き出せなかったりする
>>285が言うようにこれが何に活きてくるんだ?っていうような疑問も沢山あるし…
実務だとアプリ作ってって仕様書渡されてデータベースから値をとって加工してグリッドに表示させたりとか、何かたった一行でも表示させるのに丸一日かかって結局分からないとかも多々ある
機転が利かないっていうか自分で考えてこういう風に組み替えたり応用したりしようってのが出来ない…
知識が付けば出来るようになるのかな

愚痴吐いてごめん
勉強してきます
0290デフォルトの名無しさん (アウアウカー Sad5-vbd7)
垢版 |
2017/10/18(水) 01:03:17.80ID:3+TwrJNfa
非常に申し訳ないんですがLINQの質問いいですか?
インデックスが対応する二つの配列A、Bがあります
Aには氏(string)、Bには性(bool)が入っていて
女性で田中が何人いるってのは、どう書けばいいですか?
0293デフォルトの名無しさん (アウアウカー Sad5-vbd7)
垢版 |
2017/10/18(水) 01:27:09.70ID:3+TwrJNfa
>>291
ありがとうございます
結構難しいですね。解読して勉強させて頂きます
0296デフォルトの名無しさん (JP 0H45-FHy3)
垢版 |
2017/10/18(水) 04:11:05.14ID:f/O0/ZtAH
>>293
A.Zip(B, (a, b) => new { a, b })
.Where(ab => IsFemale(ab.b) && ab.a == "田中")
.Count()

改行するだけで随分理解しやすくなるはず

A.Zip(B, (a, b) => new { a, b })
.Count(ab => IsFemale(ab.b) && ab.a == "田中")

Where要らないの意味も解りやすくなるはず
0298デフォルトの名無しさん (スププ Sd33-iAGE)
垢版 |
2017/10/18(水) 07:51:54.79ID:vI9phIcRd
>>286
上級者がどうやって作ってるかを見て、自分が思ったやり方と違う部分を見つけて意図を聞くのがいいかも

まぁ相手が付き合ってくれることが前提だけど

どのみち初学者の場合、学習曲線はある程度学んだ時点から一気に上昇するもんなので、最初はコツコツ疑問を潰すしかないよ
0299デフォルトの名無しさん (ワッチョイ 798a-iAGE)
垢版 |
2017/10/18(水) 07:54:10.74ID:W+0BZmzB0
あと同じような内容でも入門書は評判の高い順に何冊か読んだ方がいい

自分に合った説明が一冊の中に全部詰まってる事なんてないから
0304デフォルトの名無しさん (ガックシ 06eb-dPak)
垢版 |
2017/10/18(水) 13:54:21.47ID:M3PcmRrI6
クラスと構造体の使い分けを教えてくれ
0310デフォルトの名無しさん (ワッチョイ 93b3-meYy)
垢版 |
2017/10/18(水) 17:54:33.85ID:GswCLlj60
>>304
C/C++連携かパフォーマンス最適化か

1. Microsoft (2008)
1) It logically represents a single value, similar to primitive types (int, double, etc.).
2) It has an instance size under 16 bytes.
3) It is immutable.
4) It will not have to be boxed frequently.
https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/choosing-between-class-and-struct

2. Effective C# 2nd(2010)
1) Is the main responsability of the type data storage?
2) Is its public interface defined entirely by properties that access or modify its data members?
3) Are you sure your type will never have subclasses?
4) Are you sure your type will never be treated polymorphically?

3. とあるStackOverflowの回答
1) You use structs for performance when stored in arrays.
2) You need them in code passing structured data to/from C/C++
3) Do not use structs unless you need them:
https://stackoverflow.com/a/598268
0313(スフッ Sd33-b3d+)
垢版 |
2017/10/18(水) 18:24:25.72ID:9gwGUiRxd
>>304
ゼロ初期化で良いものでshort3つとか小さいものは、クラスより遥かに軽いので、万の桁で呼ぶなら構造体にする。
あとGCで回収させずに、メソッド終わったら即捨てたいものとか。これもそのメソッドを頻繁に呼ぶ時に。
小さい構造体はヒープではなくてスタックに置かれて、抜けたら無くなるので効率とかより、GCが呼ばれてる暇がなくてもちゃんと開放される。

よく使うのは、挙がってるの以外だと描画周りに使う事ある。

ちなみに、処理を付加すると言うか、メソッド生やすのは拡張メソッドで無理が効くようになったから、関数載せたい、でも関数の参照持たせたくない!もかなりなんとかなる。
0315デフォルトの名無しさん (ワッチョイ 4d80-eNpY)
垢版 |
2017/10/19(木) 06:04:01.12ID:eqdHlWFS0
ふと思ったのですが、メソッドで匿名型クラスのインスタンスを返すことってできますか?
返すことができるなら返り値の型になんて書けばいいのでしょうか?Typeはだめでした
0319デフォルトの名無しさん (ワッチョイ 951e-gcVe)
垢版 |
2017/10/20(金) 02:56:07.82ID:iR2BGy9F0
文字列型のIdプロパティも持つクラスHogeのリストList<Hoge>からIdのカンマ区切りの文字列を求めたいのですが、
普通にやると
string.join(",", items.Select(i => i.Id));
とループが2回走るんですが、これをLINQか何かで1回のループで求められるでしょうか??
0325デフォルトの名無しさん (ワッチョイ 4e8a-sQMv)
垢版 |
2017/10/20(金) 06:26:42.31ID:2DRMxDJ60
>>324
Effictive C#とか
古いけど
0326デフォルトの名無しさん (ワンミングク MM8a-VeCH)
垢版 |
2017/10/20(金) 06:38:32.06ID:l3SzA2hHM
実戦で役立つC#のイディオムなんちゃら
割とよかった
基本をサッと把握するにはこれで良いと思う
基本を抑えたらCLR via C#とか読むべき
dotnet coreならマイクロソフトのドキュメントかな
アップデートが速すぎて本が出ない
0327デフォルトの名無しさん (ワッチョイ ddb3-hp5j)
垢版 |
2017/10/20(金) 07:08:41.55ID:NH12zMgi0
>>325
>>326
ありがとうございます。
基礎を理解するのに、独習C#かオライリーのC#の購入も検討していたのですが、その2冊についてはいかがでしょうか?
あまり役に立たない様なら、おすすめいただいた3冊を購入してみようと思います。
0328デフォルトの名無しさん (ワッチョイ 4e8a-sQMv)
垢版 |
2017/10/20(金) 07:29:07.74ID:2DRMxDJ60
>>327
正直最初の一冊は好きなの選べばいいよ
それで足りないと思ったらここを含めてお勧めされてる本をレビューなんかで評価の高い順に読めばいい
どの本の内容があんたに合ってるかはあんたにしかわからんのだから
0329デフォルトの名無しさん (ワッチョイ 558a-v8AD)
垢版 |
2017/10/20(金) 09:14:18.94ID:zf8EG0F60
誤植がない本がいいよ
C#始めた頃に買った入門本で、「なんでこうなるんだろう・・・」と嵌まって時間浪費したことがある
誤植に気づけるまでのレベルなら流せる問題が、一言一句読み解きながら進めてるときに
誤植にあたると学習コストが無駄に跳ね上がる
まぁ、読む前にそれを気づくのは至難の業だから、評価高い本と初版避けることくらいしか方法ないけど
0332デフォルトの名無しさん (アウアウオー Sae2-jbpI)
垢版 |
2017/10/20(金) 13:02:30.91ID:kQTzxkDwa
この業界歴史が浅いから本が必ず正しいことを言っているとは限らない点も注意だな
長くたって結局将棋とか過去の棋譜を使わないほうが強くなったらしいし
未来は自分で切り開くんだよend
0350デフォルトの名無しさん (ガックシ 06ee-G561)
垢版 |
2017/10/20(金) 16:28:33.99ID:3KJGg1dF6
VSで使われてるコンパイラだろ?そんなの俺でも知っとるわ。
0355デフォルトの名無しさん (ワッチョイ ddb3-0MKJ)
垢版 |
2017/10/20(金) 17:05:34.41ID:umJD7f7O0
ヒストリカルに字句解析と構文解析が何故分かれているのか疑問に感じるバカは多いと思う。
俺もバカの一員として分けなくてもエエやん?と思い実際に作ってみたら、何故分かれているのか体感したという。
0357デフォルトの名無しさん (ワッチョイ ddb3-0MKJ)
垢版 |
2017/10/20(金) 17:10:01.08ID:umJD7f7O0
忙しい現代社会。
すぐレスしてくれそうだからではないか。
0358デフォルトの名無しさん (アウアウオー Sae2-jbpI)
垢版 |
2017/10/20(金) 17:19:16.72ID:kQTzxkDwa
>>352
実際あんまり興味無い
こんな言語マニアしか食いつかないようなもんで
人生費やすのはゴメンだった

だからアイディアはあったけど
構文木作成部は保留にしてお蔵入り状態にしてた
0359デフォルトの名無しさん (ガックシ 06ee-G561)
垢版 |
2017/10/20(金) 18:30:23.02ID:3KJGg1dF6
なに作ってるの?
0362デフォルトの名無しさん (アウアウオー Sae2-jbpI)
垢版 |
2017/10/20(金) 19:49:32.49ID:BrAKv0lza
>>361
それも考えたんだけど
自宅にexcelってないんだよね
なんで文字と図形と線を出力できるような簡単なベクトルデータってないんけ?
と思ったら笑っちゃうぐらい無くてさ
とりあえず画像データでええかー
的な
機械的に処理フローを
描画するc#のコードを吐き出して
画像で保存
0368デフォルトの名無しさん (アウアウオー Sae2-jbpI)
垢版 |
2017/10/20(金) 20:05:56.74ID:BrAKv0lza
じゃあ、最後、svgならincscapeでいけんだね
こいつ日本語扱えた覚えがないからスルーしてたけど
時代は変わったのかとりあえずフォーマット知らねーけどやってみるわ
0369デフォルトの名無しさん (ワッチョイ ddb3-0MKJ)
垢版 |
2017/10/20(金) 20:07:44.87ID:umJD7f7O0
末尾に#どう思いますか?という行を付け加えれば質問風に雑談できるのでは?
0371デフォルトの名無しさん (ワッチョイ c575-G561)
垢版 |
2017/10/20(金) 20:19:36.38ID:QPjbx7Pr0
おまえ、なんかウザいから氏んでくれ。
0374デフォルトの名無しさん (ワッチョイ 4e8a-/wYC)
垢版 |
2017/10/20(金) 20:51:02.95ID:vd2jZWHS0
いつまでスレチ続けるんだクズども
0376デフォルトの名無しさん (ワッチョイ c575-G561)
垢版 |
2017/10/20(金) 21:08:47.27ID:QPjbx7Pr0
>>372
slip見て自演バレバレ
0379デフォルトの名無しさん (ワッチョイ 9a2c-Wcai)
垢版 |
2017/10/23(月) 09:42:48.16ID:iZTfc9Gp0
プロパティとメソッドの使い分けってどうするのです?

例えばクラスが持ってるリストの件数を返すCountとか、ある項目が存在するかどうかを返すIsItemExistとか
こういうのはプロパティかメソッドかどっちで実装するのです?
0393デフォルトの名無しさん (ワッチョイ 9a27-WNZk)
垢版 |
2017/10/23(月) 14:52:16.08ID:Hm5Sp4K20
>>379
原則状態はプロパティ、動作がメソッド
ただし、利用者はプロパティはループ毎にキャッシュせず読んでもいいくらいに軽い処理だと考える場合があるので、時間がかかるならメソッドにしたほうがよいかも
0394デフォルトの名無しさん (ワントンキン MM8a-VeCH)
垢版 |
2017/10/23(月) 19:30:33.33ID:TFf0LeB2M
プロパティはもちろん取得系のメソッドも何度も呼んでいいよ
実測した結果、遅くなってると分かったらキャッシュを導入する
パフォーマンスだけのために説明変数を追加するのはNG
0395デフォルトの名無しさん (ワッチョイ c575-G561)
垢版 |
2017/10/23(月) 19:34:24.82ID:HemzWECS0
説明変数とは
0399デフォルトの名無しさん (ワッチョイ bab3-DBD/)
垢版 |
2017/10/23(月) 20:35:02.50ID:y4/LHG7i0
- IsItemExitsはHasItemに
- Existsは引数を取るので基本メソッド
- IsNull、IsEmpty, HasValue等の問い合わせ系は悩ましいので選択基準を規約で決めておく

問い合わせ系については引数不要で十分チープなら
.NET Frameworkでは基本的にプロパティが使われている
ただメソッドにしないといけないケースも少なからずあるので
個人的にはメソッドに統一しといたほうがいいと思ってる

https://msdn.microsoft.com/en-us/library/ms229054(v=vs.100).aspx
0411デフォルトの名無しさん (ブーイモ MM71-kEN8)
垢版 |
2017/10/23(月) 20:48:28.25ID:ANMjmVZtM
>>406
オブジェクト指向の原理主義的には典型的なアンチパターンだよそれ
空なら何もしないとかアイテムが入ってればプレイヤーのアイテム袋に入れるとかは宝箱のOpenメソッドの中に実装するべき
0414デフォルトの名無しさん (ワッチョイ bab3-DBD/)
垢版 |
2017/10/23(月) 20:58:45.70ID:y4/LHG7i0
>>411
うん、そこは論点じゃないから
IsItemExistな名前はHasItemに変えられるよってこと

>>401はItemという名前からコレクションの要素を連想してるみたいだから
そうじゃないのをイメージしやすい例を出したの
HasSomethingでもいいよ
0415デフォルトの名無しさん (ワッチョイ 9a27-WNZk)
垢版 |
2017/10/23(月) 22:41:58.44ID:Hm5Sp4K20
>>394
ポリモーフイズムの関係で実測があてにならん状況も多いんだよね
Countは実装依存でo(1)だったりo(n)だったり、データベース呼び出しが走る可能さえある

それに対してLengthプロパティはo(1)でインライン展開されるだろうと高をくくってもだいたい問題ない
ネックになればそのときに測定
0419デフォルトの名無しさん (ブーイモ MMbe-U5aN)
垢版 |
2017/10/24(火) 00:09:05.80ID:7XcVEnvtM
統計の説明変数はexplanatory variable

リーダブルコードの人がExplaining Variableという名前を付けて書籍に残した
日本語訳するときに適当な言葉が思いつかなかったので説明変数にした

翻訳者に学がなかった
0422デフォルトの名無しさん (ワッチョイ c575-G561)
垢版 |
2017/10/24(火) 00:41:38.88ID:lU4ejLPG0
もういいよその話
0424デフォルトの名無しさん (アウアウエー Sa22-WQ16)
垢版 |
2017/10/24(火) 02:34:47.38ID:2soFq68da
ついでに、思いっきり脱線で申し訳ないけど、前から疑問に思ってたけど
プログラミングの世界の分割統治はdivide and conquer、
古代ローマの植民地支配戦略の分割統治はdivide and ruleというが、
これもたぶんどっちでも通じると思うんだよね
0428デフォルトの名無しさん (ワッチョイ 951e-gcVe)
垢版 |
2017/10/24(火) 06:55:50.50ID:hsifRvdf0
IList<T>の中身をソートしたいのですがどうすればいいでしょうか?
SortメソッドはListクラスにあってIList<T>インターフェースにはありません。
LINQのOrderByは元のコレクションの中身をソートしませんよね??
IList<T>の中身を直接入れ替えたいのです。
0431デフォルトの名無しさん (ワッチョイ 4dc9-0GSP)
垢版 |
2017/10/24(火) 09:34:12.61ID:Y6LvzYD50
入力フォーム画面から入力されたデータを集めてDBなり別の出力クラスに渡すプログラムを.NET2.0の頃に作った時は、入力フォームとデータクラスの関連付けにBindingとか使ってた記憶あるんだけど、今もその辺は変わってないの?
0442デフォルトの名無しさん (ワッチョイ c575-G561)
垢版 |
2017/10/24(火) 22:39:01.84ID:lU4ejLPG0
>>440
普通にフォームのTextプロパティと同じ型にするんだろ
0448デフォルトの名無しさん (ワッチョイ d6d3-0GSP)
垢版 |
2017/10/25(水) 02:32:41.64ID:WIc18nYy0
>>447
Text プロパティは文字列なんだからバインド云々以前に一旦文字列にするのは当たり前
(どこかで 数値 <--> 文字列 の変換が必要)
って意味で言った

でも ErrorProvider 使えば数値型プロパティでいい感じにバインドできるんじゃないかと今思った
0449デフォルトの名無しさん (ブーイモ MM71-H6Xg)
垢版 |
2017/10/25(水) 06:04:30.07ID:6FPeEgMNM
list<list<string>> hoge

このようなデータ構造のものをdatagridviewに表示させたいのですが、datasorceにhogeをセットすると入れ子のlistのcount数が表示され、肝心の中身が表示されません。
解決方法おしえてください
0453デフォルトの名無しさん (ワッチョイ 5502-G561)
垢版 |
2017/10/25(水) 12:10:32.13ID:5tcC17L/0
WPFを好きになれない
0458デフォルトの名無しさん (ワッチョイ c575-G561)
垢版 |
2017/10/25(水) 18:14:21.08ID:Ho4Id2OA0
仕切り屋ウゼエ
0463デフォルトの名無しさん (ガックシ 068b-AYwW)
垢版 |
2017/10/26(木) 23:11:07.62ID:32PzTYul6
多次元配列について

二つの変数i,jを代入したときに三次元ベクトルの値が帰ってくるような多次元配列の書き方を教えてほしいです。
0465デフォルトの名無しさん (ガックシ 068b-AYwW)
垢版 |
2017/10/26(木) 23:26:46.05ID:32PzTYul6
大学の研究で使いたいですorz
どこのサイト調べたら乗ってますか、、、
0468デフォルトの名無しさん (ガックシ 068b-AYwW)
垢版 |
2017/10/26(木) 23:34:06.91ID:32PzTYul6
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)

??? = Vector3; //Vector3はiとjで定まるベクトル
}

この???に入る関数の正しい形がわからなくてずっとエラー吐き出してます
0471デフォルトの名無しさん (ワッチョイ d175-rVGZ)
垢版 |
2017/10/26(木) 23:37:53.64ID:Fjma9sq90
>>468
多次元配列ならarray[i, j]
ジャグ配列ならarray[i][j]
0473デフォルトの名無しさん (ワッチョイ d175-rVGZ)
垢版 |
2017/10/26(木) 23:41:13.22ID:Fjma9sq90
var array[,]=new ベクトル型の名前[100, 200];

for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)

array[i, j] = ベクトルオブジェクト;
}
}
0474デフォルトの名無しさん (ガックシ 068b-AYwW)
垢版 |
2017/10/26(木) 23:41:54.41ID:32PzTYul6
>>471
ありがとうございます!
0475デフォルトの名無しさん (ワッチョイ d175-rVGZ)
垢版 |
2017/10/26(木) 23:43:25.01ID:Fjma9sq90
>>473は間違えてCみたいに書いちゃった



var array=new ベクトル型の名前[100, 200];

for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)

array[i, j] = ベクトルオブジェクト;
}
}
0476デフォルトの名無しさん (ガックシ 068b-AYwW)
垢版 |
2017/10/26(木) 23:43:59.46ID:32PzTYul6
ベクトルの各成分は既存のプログラムで決まっています
説明不足ですみません
0477デフォルトの名無しさん (ガックシ 068b-AYwW)
垢版 |
2017/10/26(木) 23:51:07.89ID:32PzTYul6
ダメだ、、
やっぱりエラーはでないけど描画に意図しないものがでます。
UNITYとリープモーションを使っているのですが、以下の一文が入るとおかしくなってしまいます。

boneText.GetComponent<BoneText>().bonL[i][j] = sphere.position;

この一文でsphere.positionの値は変わらないですよね、、
0481デフォルトの名無しさん (ワッチョイ d175-rVGZ)
垢版 |
2017/10/27(金) 00:57:10.14ID:pAogLeJi0
エラー見ろよ
0482デフォルトの名無しさん (アウアウエー Sa23-f3sA)
垢版 |
2017/10/27(金) 01:02:08.49ID:1uP28vOGa
つーかこれ日本のIT業界の縮図を見る思いだよw

客側は仕様を決める能力がない。
受ける側も客が欲しい物を聞き出す能力がない。
だからああでもないこうでもないと不毛なやり取りが延々に続く。

どちらの側に「まず最初に問題を明確にしよう」って言える奴がいれば効率は何倍にもなるのに
それが出来ない。
0483デフォルトの名無しさん (ワッチョイ 13f7-cyx1)
垢版 |
2017/10/27(金) 02:16:34.70ID:Xsu5cNz50
visualstudioと参考書を使ってC#の簡単なプログラムを作りながら学んでいるのですが
ちょっと難しいプログラムを作ろうとネットにあるサンプルコードをコピペしても
アセンブリ参照を確認してくださいの連発でうまく動きません
参考書だとイベントハンドラの作り方とかがひとつひとつ載っているのですが
ネット上のサンプルコードだとそういうのが省略されていることが多いです
やはり経験不足なのでしょうか?地道に簡単なものをたくさん作っていった方がいいのでしょうか?
コピペしただけではプログラムが作れないというのが難しいです
0484デフォルトの名無しさん (ワッチョイ 41b3-foin)
垢版 |
2017/10/27(金) 02:25:22.36ID:WVUdRiE90
>アセンブリ参照を確認してくださいの連発でうまく動きません
それで悩んでる様だと、全く基礎が出来ていないと思われるので
ちゃんと基礎から学習した方が良い
0485デフォルトの名無しさん (ワッチョイ eb80-4ToH)
垢版 |
2017/10/27(金) 04:49:12.54ID:mZaDwhR60
「c# アセンブリ参照を確認」で検索しても探せない

一言一句、正確なエラーメッセージで検索すべき。
エラーメッセージを少しでも、変えたらダメ!
検索できなくなるから

「c# アセンブリ参照」で検索!
0486デフォルトの名無しさん (アウアウカー Saed-tzPI)
垢版 |
2017/10/27(金) 06:00:59.69ID:CkoVgn7Ba
foamアプリケーションを使ってるのですが、例えば配列に格納されたデータをプリンターで印刷したいって時はどうしたらいいのでしょうか?
0490デフォルトの名無しさん (ガックシ 068b-rVGZ)
垢版 |
2017/10/27(金) 10:34:42.22ID:HHV5h0f26
>>486
>>487のページを参考に

pd_PrintPageメソッド内の
if (printingPosition == 0)
{
printingText = printingText.Replace("\r\n", "\n");
printingText = printingText.Replace("\r", "\n");
}

if (printingPosition == 0)
{
printingText = string.Join(",", sringArray);
}
に置き換える。(stringArrayは印刷したい文字列配列)
0491デフォルトの名無しさん (ガックシ 068b-rVGZ)
垢版 |
2017/10/27(金) 10:35:39.48ID:HHV5h0f26
>>486
>>490はミスった。



>>487のページを参考に

pd_PrintPageメソッド内の

if (printingPosition == 0)
{
printingText = printingText.Replace("\r\n", "\n");
printingText = printingText.Replace("\r", "\n");
}

を、

if (printingPosition == 0)
{
printingText = string.Join("\n", sringArray);
}

に置き換える。(stringArrayは印刷したい文字列配列)
0492デフォルトの名無しさん (オッペケ Sr9d-MOuH)
垢版 |
2017/10/27(金) 10:50:10.66ID:SMci25s2r
言語仕様を軽く調べて良さそげだったのでC#使ってみたいんだけど
既に簡単なプログラムや重い処理はC/C++
計算系はscilab、DNNはPython、サーバ系はnode.jsてな感じで使い分けしてるので
どういう用途で使うとgoodなのか分からない
C#て何に使える?Unity?
0493デフォルトの名無しさん (アウアウイー Sa1d-Eec1)
垢版 |
2017/10/27(金) 10:57:55.98ID:DFrdiJ4Ra
その簡単なプログラムというのをc#に持ってくるのがいいんではないかな
あとそこで上がってないのはPC上のGUI使ったものだけど
それには向いてる

window向け
.net framework向け
VS使って開発したい人向け
0494デフォルトの名無しさん (アウアウカー Saed-tzPI)
垢版 |
2017/10/27(金) 11:01:00.18ID:CkoVgn7Ba
>>487>>491
ありがとうございます!参考に頑張ってみます
0497デフォルトの名無しさん (ガックシ 068b-rVGZ)
垢版 |
2017/10/27(金) 11:16:26.26ID:HHV5h0f26
>>492
一般のウィンドウ付きGUIソフトウェアの開発はC#+VS一択
0498デフォルトの名無しさん (オッペケ Sr9d-MOuH)
垢版 |
2017/10/27(金) 11:18:42.72ID:SMci25s2r
>>493,496,497
GUIプログラムか……
C++WINAPIでのトラウマから今の所HTML+JSで作る事が多い
主にFormとWPFの2つ方法があるらしいけど(ストアアプリは作らないのでUWPは除外)
WPF資料少ないし流行ってないし仕様が難解なのだけど
それでもこっち使うメリットある?
0501デフォルトの名無しさん (ガックシ 068b-rVGZ)
垢版 |
2017/10/27(金) 11:50:25.84ID:HHV5h0f26
WPFむずくね?
0503デフォルトの名無しさん (アウアウイー Sa1d-Eec1)
垢版 |
2017/10/27(金) 11:54:19.55ID:DFrdiJ4Ra
>>501
難しい
学ばなければいけない新概念が多すぎる

いついつまでに作らないといけないとか
こういったものを確実に実装したいなど
ゴールが決まってる場合選ぶべきじゃない

特に適切な学習テキストがないのが致命的
手間や時間をかけて徐々に学習してステップアップしていける人向け
0504デフォルトの名無しさん (ガックシ 068b-rVGZ)
垢版 |
2017/10/27(金) 11:54:44.78ID:HHV5h0f26
>>502
Electronの方が簡単だと思ったけど
0506デフォルトの名無しさん (オッペケ Sr9d-QXCj)
垢版 |
2017/10/27(金) 12:12:08.77ID:SMci25s2r
男前なUIは魅力的だけどやはり難しいのか…
WPF勉強しつつ何か作らなきゃいけない時はForms使うって感じでやってみます
0513デフォルトの名無しさん (オッペケ Sr9d-QXCj)
垢版 |
2017/10/27(金) 13:12:47.78ID:SMci25s2r
>>511
これ凄いな
MVVMの真髄を見た
0514デフォルトの名無しさん (ガックシ 068b-rVGZ)
垢版 |
2017/10/27(金) 13:14:13.55ID:xbgVr3k+6
WPFはバインドが難しい
0516デフォルトの名無しさん (ワッチョイ a906-Akqv)
垢版 |
2017/10/27(金) 14:18:43.50ID:I66AtiXV0
>>514
先入観持たなければ、バインド自体は半日もネットで勉強したら理解できる範囲
難しいのはスタイルとかアニメーションとかビジュアルステイトマネージャとかビヘイビアあたり
0517デフォルトの名無しさん (ガックシ 068b-rVGZ)
垢版 |
2017/10/27(金) 14:43:10.59ID:HHV5h0f26
リストの項目を複数選択してそれぞれの属性値を使って処理しようとしてもWPFだと難しい
0518デフォルトの名無しさん (ガックシ 068b-rVGZ)
垢版 |
2017/10/27(金) 14:45:18.40ID:HHV5h0f26
単純に1つのアイテムをクリックした時にその要素のデータに対応した処理をしようとしてもなかなか出来なかった気がする
0519デフォルトの名無しさん (ワッチョイ a906-Akqv)
垢版 |
2017/10/27(金) 15:20:00.66ID:I66AtiXV0
確かにListBoxとListBoxItemと実態データの関係はわかりづらいし、それをしっかり説明している文書も見たこと無いな
あと、ListBoxを理解するのに必須のItemContainorStyleとItemTemplateの解説とか

ノウハウだけはいくらでもネットに転がっているから、最初は単純にコピペから始めるしか無いかもね
0523デフォルトの名無しさん (ワッチョイ 13f7-cyx1)
垢版 |
2017/10/27(金) 17:11:12.50ID:Xsu5cNz50
以下のサイトを参考にAccord.NETで画像判定を行いたいのですが
https://www.ipentec.com/document/document.aspx?page=csharp-accord-net-create-simple-classification
コピペだけでは上手く行かなくて悩んでいます。
NuGetでAccord.NET frameworkは導入済
フォーム名をFormMainにして
デザイナからボタン3つのイベントハンドラを作って
残りはコピペしたのですが赤線エラーが連発です。
何が足りないんでしょうか?
0524デフォルトの名無しさん (ワッチョイ d175-rVGZ)
垢版 |
2017/10/27(金) 17:14:31.76ID:pAogLeJi0
見た目ではわからんない変な見えない文字でもあるんじゃね?
0525デフォルトの名無しさん (ワッチョイ 41b3-foin)
垢版 |
2017/10/27(金) 17:17:20.47ID:WVUdRiE90
昨夜のヤツか
だから何でもかんでもコピペで済ませようとせずに、ちゃんと基礎を学習しろって

>赤線エラーが連発です。
>何が足りないんでしょうか?
先ず、そのエラーの内容を全部正確に書き出せ
何が足りないっつーなら、人に物を訊ねるのに提示する情報が足りてない
0527デフォルトの名無しさん (ワッチョイ 13f7-cyx1)
垢版 |
2017/10/27(金) 17:32:12.47ID:Xsu5cNz50
ごめんなさい
以下が私のコピペして作ったコードです
https://pastebin.com/xdS3quRw
エラーは以下の21個です
https://pastebin.com/sZTkUWfU

何かアドバイス頂けたら幸いです。
0528デフォルトの名無しさん (ワッチョイ 13f7-cyx1)
垢版 |
2017/10/27(金) 17:34:34.18ID:Xsu5cNz50
入門書は作って覚えるvisualC#2017という本を買い
コピペではありますが本に載っているプログラムを一通り作ってみました。
0529デフォルトの名無しさん (ワッチョイ d175-7VDh)
垢版 |
2017/10/27(金) 18:10:14.92ID:eOTTzU3j0
このサンプルがゴミ
他のサイトで試そうぜ
0530デフォルトの名無しさん (ワッチョイ eb9a-20SA)
垢版 |
2017/10/27(金) 19:04:59.18ID:+TQssIne0
>>527
usingでエラー出ているから手の付けようがないんだが
Accord.MachineLearningがあってその下のAccord.MachineLearning.VectorMachines;が無いって出ているのだから
Accord.NET frameworkやらの導入に失敗しているか拡張か何かが必要なのにそのことが書いてないか
検証するには同じように導入しなきゃならないけど俺には無理w

身もふたもないこと書くけど、コピペでしかやらないのならプログラムじゃなくてソフトウェア板でツール探したほうがいいと思うよ
0531デフォルトの名無しさん (ワッチョイ eb96-O+EC)
垢版 |
2017/10/27(金) 19:06:56.02ID:fMt9E+qB0
while文を使って「10000」を「2」で何回割ると
「100以下」になるかを調べるプログラムってどう記述すればいいですか?
教えてくださいお願いします
0534デフォルトの名無しさん (ワッチョイ d175-rVGZ)
垢版 |
2017/10/27(金) 19:30:24.53ID:pAogLeJi0
>>530
俺は実際にやったんだがまず最新バージョンだとダメだった
サイトに書いてるバージョンをインストールしたら名前空間未解決は全部消えたけどImageItemクラスが見つからないって出たわ
0535デフォルトの名無しさん (ワッチョイ eb96-O+EC)
垢版 |
2017/10/27(金) 19:47:20.37ID:fMt9E+qB0
>>532さんありがとうございます
0537デフォルトの名無しさん (ワッチョイ d175-rVGZ)
垢版 |
2017/10/27(金) 20:58:27.40ID:pAogLeJi0
1000/(2^x)<=100
∴x>=-ln(100/1000)/ln(2)

整数単位なら
ceil(-ln(100/1000)/ln(2))

C#なら
(int)Math.Ceiling(-Math.Log(100.0/1000.0)/Math.Log(2.0))
0538デフォルトの名無しさん (ワッチョイ d175-rVGZ)
垢版 |
2017/10/27(金) 21:00:22.12ID:pAogLeJi0
1000じゃなくて10000だった
0539デフォルトの名無しさん (ワッチョイ 718a-Eec1)
垢版 |
2017/10/27(金) 21:10:00.24ID:Kbs4W3Kw0
質問です
WPFで、MenuのItemSourceをXMLとデータバインドして、ItemContainerStyleでXMLに書かれたアイコンのパスからアイコンを表示してます
テキストはうまく並びますが、アイコンは現在最後の1個だけ表示される状態です
試行錯誤したのですがなんかうまくいきません
教えてください!
0540デフォルトの名無しさん (ワッチョイ 13f7-cyx1)
垢版 |
2017/10/27(金) 21:15:13.29ID:Xsu5cNz50
>>534
ありがとうございます
バージョンをサイトのに合わせたらエラーが以下の7つにまで減りますね
https://pastebin.com/a3enEffB
ちょっと希望が見えてきました
0541デフォルトの名無しさん (ワッチョイ d175-rVGZ)
垢版 |
2017/10/27(金) 21:18:58.21ID:pAogLeJi0
>>539
>>1のサイトにコード貼ってうp
0543デフォルトの名無しさん (ワッチョイ 718a-UJxV)
垢版 |
2017/10/27(金) 21:22:05.47ID:+vbTuR/l0
>>533
俺なんか、実際プログラミングの授業さっぱりわからなかったから気持ちはわかるw
卒業して全然違う職に就いてから、独学で勉強して業務アプリ作ってるけど
やっぱ理系の大学教授って教えるの下手だよなぁ
0549539 (ワッチョイ 718a-Eec1)
垢版 |
2017/10/27(金) 22:51:06.59ID:Kbs4W3Kw0
できましたありがとう!
ResourceDictionaryにx:Shared="false"でできました!
本当に感謝です! これでスマートに書けます!
0552デフォルトの名無しさん (ワッチョイ 9123-bpOR)
垢版 |
2017/10/28(土) 01:15:13.63ID:Ng05dLeH0
いいえ
WPFの思想を正しく理解してたらグリッドコントロールなんか必要ないとわかるはず
それを面倒に感じるようなタイプのアプリならWinFormsかASP.NETで作るべき
0563デフォルトの名無しさん (アウアウオー Saa3-U9gu)
垢版 |
2017/10/28(土) 13:20:52.94ID:pcT2EQ6Aa
とりあえずDataGridもDataGridViewも
10万件ぐらいなら余裕で表示できるよ
でも無限に表示するわけにも行かないのに
3年ぐらいのデータはみたいとか言うんだよな
役所のアプリに限っては住民だから
全員並列でデータに上下がなくて
完全にどうやって表示したらいいかわからない
0567デフォルトの名無しさん (ブーイモ MM33-bpOR)
垢版 |
2017/10/28(土) 14:31:38.49ID:/OSTeRXvM
能力のない人が要件定義するとそういうアホなことになるよね
客からすれば大抵そういうのはその場のノリで適当に言っただけのどうでもいいことで、
それが生み出す価値と引き換えになる品質やコストを天秤に載せれば明らかにやるべきではないような要件を「やりません」と言えない
0569デフォルトの名無しさん (アウアウエー Sa23-f3sA)
垢版 |
2017/10/28(土) 16:06:44.30ID:e5FcL5GRa
どうせユーザーは全部のデータは見ないから〜、とか
適当に絞り込んだ表示にしろとかいう意見ははさすがにちょっと頭悪すぎると思うw

んなアホな

っていうか仮想化すれば済む程度の話で客や上司を無能扱いする奴って
どんだけ図々しいバカだよ
0573デフォルトの名無しさん (ワントンキン MM53-1Xwn)
垢版 |
2017/10/28(土) 16:58:11.15ID:rZWSN5VzM
class Line {
private readonly string _contents;
private readonly int _lineNumber;
public Line(string contents, lineNumber) {
Contents = contents;
LineNumber = lineNumber;
}
public string Contents {
get => _contents;
set {
if (value == null) throw new ArgumentNullException(nameof(Contents));
_contents = value;
}
}
public int LineNumber {
get => _lineNumber;
set {
if (value <= 0) throw new ArgumentOutOfRangeException(nameof(LineNumber));
_lineNumber = value;
}
}
}
0578デフォルトの名無しさん (アウアウエー Sa23-f3sA)
垢版 |
2017/10/28(土) 17:42:01.52ID:m7p7dboTa
>>575
手を動かす(コードを書き始める)前によく考えなかったツケとしか言いようがないね
修正箇所が多いことは間違った設計を正当化する理由にはならんでしょう。

>>576
拡張メソッドの実体はただの静的メソッドなので基本状態を持てませんw

thisをキーにするDictionaryでも持てばやってできないこともないだろうけど、
努力の方向が間違ってる感が半端ない
0592デフォルトの名無しさん (ワッチョイ d98a-5+y+)
垢版 |
2017/10/29(日) 01:56:06.10ID:9lQAHngl0
>>591
いやできるけど
0593デフォルトの名無しさん (アウアウエー Sa23-f3sA)
垢版 |
2017/10/29(日) 02:40:31.76ID:WQc+sGcxa
>>591
C#だとデフォフトのアクセスレベルがprivateになってる(VBはpublic)から
これをpublicとかに変更してやればできる。(デザイナのプロパティグリッドだとデザイン/Modifier)

でもやるな。
コントロールを外から操作したいなんて99%考え方が間違ってる。
0595デフォルトの名無しさん (ワッチョイ 9319-nu9H)
垢版 |
2017/10/29(日) 08:12:26.70ID:eDIrk2le0
>>592-594
ありがとうございます
Winフォーム作成→dataGridView貼り付け→dataGridViewのModifiersをPublic→
新しいクラスClass1.csを作成→
public void Test() {Form1.dataGridView1.Rows.Add("hoge");}
エラー CS0120 静的でないフィールド、メソッド、またはプロパティ 'Form1.dataGridView1' で、オブジェクト参照が必要です

とでます。Form1. の時点でインテリセンスにも表示されませんでした
どこが間違っているか指摘していただけるとうれしいです

VB.NETもおなじようにやってみましたが、Form1.のインテリセンス候補も10倍くらいの量がありました

>でもやるな。
>コントロールを外から操作したいなんて99%考え方が間違ってる。
ちなみにどのようにされていますか?
0596デフォルトの名無しさん (ワッチョイ 718d-Ol9m)
垢版 |
2017/10/29(日) 09:36:49.69ID:xy4cL51x0
クラスのインスタンスを電文フォーマットに基づくバイト列に変換するのって
どうするのが一般的ですか?

BitConverterで一つずつやるつもりでいたんだけど、電文の種類が多くて大変なんで
マーシャリングかシリアライザー使って何とかならないかなと考えています。

バイトオーダの変換はありませんが
文字コードの変換はあります。
0599デフォルトの名無しさん (ワッチョイ a1c9-20SA)
垢版 |
2017/10/29(日) 10:25:39.66ID:8DklepZ/0
>>596
電文フォーマットが有名な国際規格ならNugetにコンバータが落ちているだろうからそれ使えだけど、独自形式なら電文に応じてコンバータ作るしかないんじゃね
2.0時代の時は文字コード指定したBinaryWriterに1項目ずつ書き込んだけど、今だともっと良い方法あるのかね?
0601デフォルトの名無しさん (ワッチョイ eb9a-20SA)
垢版 |
2017/10/29(日) 10:46:16.93ID:lQWP9L+J0
>>600
意味が分からないのだけどインスタンス無しでアクセスしたいのなら無理
デフォルトをpublicにする設定なら知らない
datagridviewをpublicにしたくないのなら同じクラスに読み書きするためのpublicなメソッドをおいてそこに外からアクセスする
0605(スププ Sd33-PHjP)
垢版 |
2017/10/29(日) 13:54:10.92ID:KCquvjW+d
>>596
電文コンバータと、そのコンバータ用のattribute作った事ある。
ちまちまやっても辛いが、電文は自システム外との接点で一番健全であるべきだと思うから、
あんまりその辺のライブラリ使わずに、ベンダサポートのあるものを買うか自作した方が良いと思う。
0616デフォルトの名無しさん (ワッチョイ 13f7-cyx1)
垢版 |
2017/10/29(日) 21:38:31.04ID:AI+osUJX0
あるstringのデータを
コンソールで表示すると

1 2 3 4
5 6

となるのですが
フォームアプリケーションのtextBoxで表示すると
1 2 3 45 6
となってしまいます
これはどうしてでしょうか?
コンソールアプリケーションと同じように表示する方法はありますか?
0618デフォルトの名無しさん (ワッチョイ d175-rVGZ)
垢版 |
2017/10/29(日) 21:46:02.25ID:+ffco7dx0
>>616
フォームデザイナーでテキストボックス選択すると出てくる三角マークで出てくるチェックボックスにチェック
0619デフォルトの名無しさん (ワッチョイ 13f7-cyx1)
垢版 |
2017/10/29(日) 21:49:41.90ID:AI+osUJX0
>>617>>618
Multilineはチェックしています
0621デフォルトの名無しさん (ワッチョイ d175-rVGZ)
垢版 |
2017/10/29(日) 21:50:47.43ID:+ffco7dx0
>>619
改行コードは\nじゃなくて\r\n
0622デフォルトの名無しさん (ワッチョイ 13f7-cyx1)
垢版 |
2017/10/29(日) 21:53:57.78ID:AI+osUJX0
>>621
なるほど、データの\nを\r\nに置換すれば良いのですね
プログラム内で出来る様やってみます
ありがとうございました!
0630デフォルトの名無しさん (ワッチョイ 7102-rVGZ)
垢版 |
2017/10/30(月) 17:05:11.69ID:ZRry2d4e0
最も無駄がなく整理されて簡潔な言語なのに
0632デフォルトの名無しさん (ワッチョイ eb96-O+EC)
垢版 |
2017/10/30(月) 17:13:03.05ID:em1IyeD/0
Dictionaryを使って
stringとfloat型で特定の人物の電話番号を
WriteLineでコンソールに出力するプログラムを作りたいのですが
例えば0001234567という電話番号だったりすると
000の部分が省略されて1234567の部分しかコンソールに出力できません
float型では0は扱えないのでしょうか?
0635デフォルトの名無しさん (ワッチョイ eb9a-20SA)
垢版 |
2017/10/30(月) 17:28:01.76ID:dYkZ5PSi0
>>632
float型だろうがdecimalだろうが頭に0が付かないのは当たり前。電話番号は文字列として扱え
数値以外の要素のチェックが必要なら面倒でもチェック用のメソッドを作る
>>633
それができるのは桁数が決まっているものだけだから電話番号には使えない
0637デフォルトの名無しさん (ワッチョイ eb96-O+EC)
垢版 |
2017/10/30(月) 17:37:33.80ID:em1IyeD/0
>>634
>>635
文字列として扱ったら表示されました!
ありがとうございました!
0639デフォルトの名無しさん (ガックシ 068b-rVGZ)
垢版 |
2017/10/30(月) 17:43:10.06ID:1Rgk/fXB6
電話番号って幅バラバラなんだ初めて知った
0640デフォルトの名無しさん (ガックシ 068b-rVGZ)
垢版 |
2017/10/30(月) 17:44:12.67ID:1Rgk/fXB6
確かにバラバラだわ
0645デフォルトの名無しさん (ワッチョイ 7116-rVGZ)
垢版 |
2017/10/30(月) 18:02:40.83ID:zMAqCiK10
常識的に考えて緊急電話がサービスに登録してこない
電話帳かな?
0646(スフッ Sd33-PHjP)
垢版 |
2017/10/30(月) 18:03:59.63ID:53AKimFld
電話番号って番号だからなぁ。一応。
単純に文字列が良いかと言うと、ソートは国番号、市外局番、市内局番、内線番号で数字順にやりたい、とか、局番のハイフンは数字じゃないじゃんとか、市外局番変わるので洗い替えます、とか結構うんざりする。
業務系だと電話番号クラス作る(というかプリミティブな型をデータを表す型に使わない)けど、そこまでやってるとキリないしな。
0649デフォルトの名無しさん (ガックシ 068b-rVGZ)
垢版 |
2017/10/30(月) 18:32:37.98ID:6LR7RaNa6
x 数字
o 数値
0657デフォルトの名無しさん (ワッチョイ 7102-rVGZ)
垢版 |
2017/10/30(月) 19:48:27.09ID:4jg/LOEr0
ワシみたいな趣味グラマーは公式ドキュメントなんか読まないからノープロブレム
0664デフォルトの名無しさん (ワッチョイ 41b3-jdGw)
垢版 |
2017/10/30(月) 20:40:19.79ID:OohuTOK70
c#初心者のDTですが質問良いですか?
Visual Stdio 2017 でプログラムの実行方法が分かりません猫でも解るC#を見て打ち込んだのはいいのですが走りません
アドバイスをおぬがいします
0668デフォルトの名無しさん (ワッチョイ d175-rVGZ)
垢版 |
2017/10/30(月) 20:48:55.38ID:59na0HEH0
>>664
情報が少なすぎる
とりあえずなにかを動かしたいのか?

「新しいプロジェクト」

「コンソールアプリ」のプロジェクトを作成

static void Mainしたの中括弧の中にConsole.WriteLine(“Hello World”);
を追記する

画面の上にある再生ボタンを押す
0669デフォルトの名無しさん (ワッチョイ 41b3-jdGw)
垢版 |
2017/10/30(月) 21:01:28.13ID:OohuTOK70
>>668
説明が足りなくてすいません
http://imepic.jp/20171030/755380
こんな感じで本を見て書いたやつを走らせたい息子が困っていまして
0672デフォルトの名無しさん (ワッチョイ 41b3-jdGw)
垢版 |
2017/10/30(月) 21:12:08.05ID:OohuTOK70
>>671
ありがとうございます
0676デフォルトの名無しさん (ワッチョイ 41b3-jdGw)
垢版 |
2017/10/30(月) 21:14:34.02ID:OohuTOK70
>>674
アドバイスありがとう
0678デフォルトの名無しさん (ワッチョイ 41b3-jdGw)
垢版 |
2017/10/30(月) 21:22:59.03ID:OohuTOK70
Visual Studioを使っているのですがなかなか走らないんですよ
http://imepic.jp/20171030/768660
ちなみに今こんな感じ
0682デフォルトの名無しさん (ワッチョイ 41b3-jdGw)
垢版 |
2017/10/30(月) 21:28:40.71ID:OohuTOK70
>>681
的確なアドバイスありがとうございます
0684デフォルトの名無しさん (ワッチョイ 41b3-jdGw)
垢版 |
2017/10/30(月) 21:32:42.46ID:OohuTOK70
>>683
仕方がないんですよリアル中1の息子ですから
ちなみに成功しましたありがとうございます
0686デフォルトの名無しさん (ワッチョイ 41b3-foin)
垢版 |
2017/10/30(月) 21:52:18.37ID:+mMPfUc40
素晴らしいかどうかはともかくとして、特定企業に対する好き嫌いは宗教みたいなもんだから
深くツッコミを入れてはいけない

>>678
デジカメで画面を撮影するんじゃなく、スクショを撮る様にした方がいいぞ
0694デフォルトの名無しさん (アウアウエー Sa23-f3sA)
垢版 |
2017/10/31(火) 00:13:41.09ID:LbNkhFzoa
その議論は不毛だ思うよw

まあ、電話番号の最小単位の数字が単なる符号(記号というより符号だね)であったとしても
数字に符号されているんだから、コードでそれを表現する時には素直に順序付きの数字の並び(の並び)
として表現した方がいろんな処理場便利なのは確かだと思う

普通はやらねえと思うけどケタの表現にenumなんか使ってもいいことないねw
0697デフォルトの名無しさん (ワッチョイ 69de-JAUL)
垢版 |
2017/10/31(火) 00:50:48.14ID:FwO1SqIy0
>>678
まあ、>>681 でいいわけだがVSから入るとMain と Formの関係がなかなか理解できんよな

そういうの解説してる入門書は少なくて
オレは高橋なんとかの「やさしいC#」の最初の方読んでようやく分かった
0704(スフッ Sd33-PHjP)
垢版 |
2017/10/31(火) 08:16:12.54ID:VssU1hfBd
>>695
番号にシャープを入れるんじゃなくて、電話番号クラスのうち、シャープ特番クラスを作る方が良いのでは?
そうなると電話番号インターフェイスになるが。
アメリカのアルファベットは、ありゃ数字だ。数字をアルファベットで表現してるだけ。
なので、これは元言ってた電話番号クラスに数字列と表現列を作る他ないな。
そーすりゃ日本の語呂合わせ番号も(必要があるからはおいといて)保存できる。
0710デフォルトの名無しさん (アウアウエー Sa23-f3sA)
垢版 |
2017/10/31(火) 11:11:37.78ID:0nZAN2Wka
電話番号に#や*は使わないと思うよw
あれは自動応答を操作するためのトーンを割り当ててるだけじゃないの?
そんな番号があったらダイアル回線からかけられないじゃん
0712デフォルトの名無しさん (ガックシ 068b-rVGZ)
垢版 |
2017/10/31(火) 12:06:40.36ID:Jn8FhbAo6
電話スレか
0714デフォルトの名無しさん (ブーイモ MMeb-8qZI)
垢版 |
2017/10/31(火) 12:09:33.06ID:lgb8DbLAM
>>710
*はサブアドレスで使われる。
#は内線でよく使われるな。
0715デフォルトの名無しさん (ブーイモ MMeb-8qZI)
垢版 |
2017/10/31(火) 12:12:12.86ID:lgb8DbLAM
>>713
そういえば、そんなのもあったな。
すっかり忘れてた。
0718デフォルトの名無しさん (アウアウエー Sa23-f3sA)
垢版 |
2017/10/31(火) 12:42:10.67ID:0nZAN2Wka
>>713
NTTの回線からしかつながらないものを電話番号と言ってよいかは微妙でしょう

>>714
後者はあきらかに電話番号とは違うような...
前者は微妙だけど、普通のアナログ回線からは掛けられないものを電話番号と言えるかどうか

まあ元のお題にもどれば、テクニカルに電話番号であろうがなかろうが
電話番号として扱えるようにすべきだとは思うけど
0719(スフッ Sd33-PHjP)
垢版 |
2017/10/31(火) 12:50:04.95ID:VssU1hfBd
>>718
と言うかコメはもともとアナログ回線で掛けてるときにいまからトーン送るぞってボタンだったんだが。
内線番号に関しては、待ってりゃ交換台出るだろ。
0720(スフッ Sd33-PHjP)
垢版 |
2017/10/31(火) 12:51:28.39ID:VssU1hfBd
電話番号でないものを電話番号として扱う、がわからんなぁ。
電話番号は電話番号として扱え、ならなるほどだけど。
0721デフォルトの名無しさん (ワッチョイ 1b8a-Sr8C)
垢版 |
2017/10/31(火) 13:01:26.31ID:yzv1EbBg0
>>718
>NTTの回線からしかつながらないものを電話番号と言ってよいかは微妙でしょう
これはプッシュホンのサービスと同時に開始されたサービスで、当時は電話サービスを電電公社が独占していたので、他の回線なんか存在しなかった

国際電話があるじゃねーかと言うかもしれんが、国際電話から繋がらない110などの特番は電話番号じゃねー というならその反論は認めよう
0722デフォルトの名無しさん (アウアウエー Sa23-f3sA)
垢版 |
2017/10/31(火) 13:02:30.63ID:0nZAN2Wka
>>719
それは違うでしょう。
あれは(どこのメーカーが最初に始めたのか知らないけど)ただの電話機の機能で
恐らくNTTの定めた規格でも何でもない

自由化直後の電話機はダイアル回線モードだと*押そうが何仕様が
トーン出なかったような気が

まあいい加減どうでもいいねw

>>720
DTMFを認識する自動応答マシンにトーンを送るのは電話を掛けると言わないし
明らかに電話番号じゃないでしょう。
0723デフォルトの名無しさん (ワッチョイ d98a-5+y+)
垢版 |
2017/10/31(火) 14:57:18.16ID:PGoVot5B0
ここまで電話スレ
0724デフォルトの名無しさん (ワッチョイ 1be7-DNJs)
垢版 |
2017/10/31(火) 16:58:47.83ID:tljKmL6i0
visualC#のXNAでブロック崩し作ってるけどクソめんどくさいな作成+整理整頓するだけで混乱する
コンソールでしょぼいので完璧だって思ってると痛い目見るな
0727デフォルトの名無しさん (ワッチョイ e9b6-AYwW)
垢版 |
2017/10/31(火) 22:07:06.75ID:UyVEd0rJ0
飢餓ベネズエラ「1600%インフレ率」で仮想通貨が生活の柱|ビットコインマイニング(採掘)で生き残る
http://virtualmoney.jp/I0001275
「ビットコイン」新世界のベネズエラ:自由を求める、採掘者たちの反逆
https://www.fuze.dj/2017/01/venezuela_mining.html
ベネズエラ、ビットコインマイナーが10万人規模に
http://btcnews.jp/5c5uq4ei13034/
ジンバブエではビットコインが80万円?自国通貨がインフレしている国の仮想通貨需要について
http://coinpost.jp/?p=5803
ビットコインとは?投資で儲かる仕組みと危険性を分かりやすく解説
https://enjoyrock.jp/bitcointoha-4370
0729デフォルトの名無しさん (ワッチョイ 13f7-cyx1)
垢版 |
2017/10/31(火) 22:46:58.06ID:4MZcs+cX0
FindWindowで見つけたウインドウの画面をキャプチャすることはできますか?
ウインドウが隠れていてもキャプチャできるようにしたいのですが
PrintWindowと組み合わせようとしてもよくわからないです
0732デフォルトの名無しさん (ワッチョイ 13f7-cyx1)
垢版 |
2017/10/31(火) 23:31:19.87ID:4MZcs+cX0
DWMも使ってみたいのですが日本語解説のサイトが全くなくて…
英語出来ないとやっぱりだめですね
0733デフォルトの名無しさん (ワッチョイ a906-Eec1)
垢版 |
2017/10/31(火) 23:59:12.73ID:RzsX96BS0
>>732
最小化されてなければ重なってようが画面からはみ出ていようが適当なBitmap作って
using (var g = Graphics.FromImage(bmp)) PrintWindow(hWnd, g.GetHdc(), 1);
とかでも済みそうだが。環境依存だろうから.NETには碌に無いしWin32APIの領分だなぁ
0734(ワッチョイ 9b99-PHjP)
垢版 |
2017/10/31(火) 23:59:53.09ID:KKSGwBSw0
>>722
確かに、規格ではないな。そういう意味では、それこそ自由化されたあとはNTTのローカルルールに縛られず、すべてが番号として取り扱われるべきなのかもしれん。

自動応答マシンの特定のメニューまで進むのを「番号」と言っていいと思うぞ、俺は。
0736デフォルトの名無しさん (ワッチョイ 13f7-cyx1)
垢版 |
2017/11/01(水) 04:36:44.91ID:dB2PwCEI0
https://ideone.com/jcN0mM
別のプログラムのキャプチャを取りたいのです
別のプログラムのProcessオブジェクトを取得してPrintWindow関数につっこみたいのですが
どうしたらよいでしょうか?
0737デフォルトの名無しさん (ワッチョイ 13f7-cyx1)
垢版 |
2017/11/01(水) 04:39:54.64ID:dB2PwCEI0
GetProcessesByNameでオブジェクトを取得した後
↑に貼ったコードのCaptureControlにthisの代わりにどうやって渡せば良いでしょうか?
0738デフォルトの名無しさん (ワッチョイ a906-Eec1)
垢版 |
2017/11/01(水) 05:32:38.62ID:vhfog6b10
>>736-737
FindWindowと云うからP/Invokeは理解しているのかと思いきや、躓いてるのはソコかいってかコピペかい
ProcessオブジェクトにはメインウィンドウハンドルだけならMainWindowHandleプロパティが既に用意されてる
枠の有無でGetWindowRectやGetClientRect等のWin32APIでサイズ取得、枠無しならnFlagsにPW_CLIENTONLY(1)を指定

LPRECTをout Rectangleとしても互換性はあるが、メンバの意味は異なるので注意。あとOpenGL画面とかは怪しかった気もする
0739デフォルトの名無しさん (ワッチョイ 33eb-nu9H)
垢版 |
2017/11/01(水) 12:54:43.00ID:wiqlBWqs0
初歩的なことで申し訳ないですが、
C#をx86でコンパイルしたときlong型は何バイトですか?

32ビットですよね?

long型な引数を持つC++で作られたDLLを呼ぼうとしてるんですが
C#側もlong型にするとバイオレンスエラーが出るんです
0749デフォルトの名無しさん (ワッチョイ 1be7-DNJs)
垢版 |
2017/11/01(水) 15:34:33.63ID:DJIAeWHo0
>>725
当分出来ねえから期待しないでおけ
0750デフォルトの名無しさん (ワッチョイ 13f7-cyx1)
垢版 |
2017/11/01(水) 15:53:44.71ID:dB2PwCEI0
>>738
すいません高度すぎてちょっとよくわからないです
FindWindowでウィンドウハンドルを取得して画面をキャプチャするプログラムは作れたのですが
ウインドウハンドルしか取得してないのでウインドウの大きさが設定できなくて困っています
(現在ピクセル数で設定)
GetWindowRectやGetClientRectを使おうとしてもRECT構造体の定義がよくわからなくて出来ません。

GetProcessesByNameで取得したProcessオブジェクトからハンドルとオブジェクトの大きさを取り出すにはどうしたら良いでしょうか?
0753デフォルトの名無しさん (ワッチョイ 13f7-cyx1)
垢版 |
2017/11/01(水) 17:06:28.99ID:dB2PwCEI0
>>751
よくわからないですが後で読んでおきます
>>752
そのページは見たことあるんですが意味がよくわからないです…

すごく低レベルな質問だと思うのですが
Process[] ps = Process.GetProcessesByName("notepad");
foreach (System.Diagnostics.Process p in ps)
{
textBox1.Text = p.MainWindowTitle;
}
だと問題ないのに
Process[] ps = Process.GetProcessesByName("notepad");
textBox1.Text = ps[0].MainWindowTitle;
では動作しないのは何故でしょうか?
0756デフォルトの名無しさん (ワッチョイ 13f7-cyx1)
垢版 |
2017/11/01(水) 17:35:15.46ID:dB2PwCEI0
すいません動きました!
メモ帳開いていなかっただけでした…
0757デフォルトの名無しさん (バットンキン MM85-zrjR)
垢版 |
2017/11/01(水) 17:37:14.82ID:qqAk/1TWM
勉強用トイプログラムで抽象クラスを継承したクラスにインタフェースを継承したのですが、実務の世界ではよくやる事でしょうか?
抽象クラス側にインタフェースのメソッドを書くとか美しく無いので邪道な事をしてるかもと心配になりまして
0758デフォルトの名無しさん (ワッチョイ eb9a-20SA)
垢版 |
2017/11/01(水) 17:46:07.56ID:xAl8OFsq0
>>744
公式にアンマネージとマネージでのデータ形式のリファレンスがあるからそこ見ておいた方がいい
https://msdn.microsoft.com/ja-jp/library/ac7ay120(v=vs.110).aspx
C#でlongは紛らわしいから使わない方がいいと思う
>>753
構造体がわからないとWinAPI使えないよ
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/using-structs
0759デフォルトの名無しさん (ワッチョイ 1be7-DNJs)
垢版 |
2017/11/01(水) 17:55:43.82ID:DJIAeWHo0
ボールとか壁に当たって反転させるときに
int speed=1;
更新処理
position.x+=speed;
if(800<position.x)
{
speed*=-1;
}
こうゆう反転っておkなの?+=って無駄じゃねえかとか言われない?
0760デフォルトの名無しさん (ワッチョイ 13f7-cyx1)
垢版 |
2017/11/01(水) 19:13:00.27ID:dB2PwCEI0
https://ideone.com/gKjIFo
見よう見まねでRECT構造体を使おうとしているのですが
17行目の&rectWinという所で以下の2つのエラーが出てしまいます
何が間違っているのでしょうか?

ポインターおよび固定サイズ バッファーは、unsafe コンテキストでのみ使用することができます。
引数 2 はキーワード 'out' と共に渡す必要があります。
0762デフォルトの名無しさん (スップ Sd73-Na5b)
垢版 |
2017/11/01(水) 19:18:49.98ID:C3RJkmbpd
>>757
人間クラスと継承した社員クラスがあるとして
体重身長インターフェイスは人間クラスに、入社日退職日インターフェイスは社員クラスにってのが普通だと思うけど
抽象クラスだから付けないって考え方は美しくないんじゃないかな?
0763デフォルトの名無しさん (ワッチョイ 13f7-cyx1)
垢版 |
2017/11/01(水) 19:22:01.17ID:dB2PwCEI0
>>761
できました!有難う御座います!!!!!!!
0766739 (ワッチョイ d2eb-Q/5A)
垢版 |
2017/11/02(木) 13:32:08.71ID:wZG1ntZl0
みなさんありがとうございました。

C++側で void test(long aa[2]);

みたいに定義されてるやつをC#から使うときも IntPtr でやりくりするしかないんですよね。
0768デフォルトの名無しさん (ガックシ 0626-zraI)
垢版 |
2017/11/02(木) 15:50:21.67ID:i1tOzlAd6
バイナリプログラムもCPUがインタープリットしてるしインタープリタだなw
0771デフォルトの名無しさん (ワッチョイ d2eb-Q/5A)
垢版 |
2017/11/02(木) 16:17:55.02ID:wZG1ntZl0
>>769
pack意識したうえで配列という手もありますね
どっちにしろコード量は増えますね

C# 側で ref を付けるだけで
勝手にIntPtrやらマーシャル確保・代入・解放してくれたらいいのに・・・
char * → string みたいな超絶ラクチンな方法でさ
0772デフォルトの名無しさん (ワッチョイ d2eb-Q/5A)
垢版 |
2017/11/02(木) 16:20:47.53ID:wZG1ntZl0
ちょっと早合点で書き込んでしまいましたが

[StructLayout(LayoutKind.Sequential, Pack = 4)
struct struct_aa
{
public int aa1;
public int aa2;
}
struct_aa aa;

としたうえで

test(ref aa);

で出来ちゃうんですか!?
0775デフォルトの名無しさん (ワッチョイ 2e9a-lboT)
垢版 |
2017/11/02(木) 17:12:38.78ID:oE5JXb4z0
配列でそのまま渡せばいいのにわざわざ変な方法使うとか
>>766
C#から渡すときはvoid test(int[] aa);でいいんだよ。Visual Studio以外なら知らん
>>772>>773
アンマネージ側で定義されていない構造体を勝手に作って渡すって考え方がおかしい
アンマネージ側で要求されている引数の形式に合わせるのが基本だろ
0776デフォルトの名無しさん (ワッチョイ d2eb-Q/5A)
垢版 |
2017/11/02(木) 17:42:00.04ID:wZG1ntZl0
ググって最初のほうに出てくるサイトで char * 以外は全てマーシャってるので
てっきり IntPtr を駆使すると思い込んでました。
配列じゃないポインタ渡しは ref/out で何の造作もなく出来ました。
(マーシャル関連のコードを大量に書いていたのが馬鹿らしくなるほど)

んで配列ですが

// C++(x86)
extern "C" __declspec(dllexport) void test(long a[2]);

// C#
[DllImport("usrbatch.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void test(out int[] a);

int[] a = new int[2];
test(out a);

で、バイオレーションエラー出ちゃいます。。。
0778デフォルトの名無しさん (ワッチョイ d2eb-Q/5A)
垢版 |
2017/11/02(木) 18:01:00.66ID:wZG1ntZl0
うわぁ、ありがとうございます。

先方で値が書き換わる場合には ref/out を付けないといけない
(付けなかったら配列だろうが値渡しになる)

だと先入観で思い込んでました。
配列だったらC++と同じくポインタ渡しになるんですね!

// C#
[DllImport("usrbatch.dll", CallingConvention = CallingConvention.Cdecl)]
static extern void test(int[] a);

int[] a = new int[2];
test(a);


で、うまくいきました。
(C++側で設定された値が戻ってきた)
0779デフォルトの名無しさん (アウアウエー Sa4a-pdK9)
垢版 |
2017/11/02(木) 18:34:34.93ID:OVuNv67Pa
>>778みたいな場合、アンマネージド関数の宣言の仮引数にOutAttributeを付ける必要が
あるのかないのか、MSDN読んでもいまいちよく分からん

https://msdn.microsoft.com/ja-jp/library/75dwhxf7(v=vs.90).aspx
を読むとBittableな型の一次元配列の場合不要のようにも思えるが、

https://msdn.microsoft.com/ja-jp/library/hk9wyw21(v=vs.90).aspx
のサンプルでは属性がついてる
0780デフォルトの名無しさん (ワッチョイ e227-MwDY)
垢版 |
2017/11/02(木) 22:14:18.55ID:FJPOLiu40
>>779
そのリンク先に書いてあるぞ

これらの型は、呼び出し元と呼び出し先が同じアパートメントに属する場合には、In/Out パラメータとしてマーシャリングされるように見えることがあります。
ただし、そのような型は実際には In パラメータとしてマーシャリングされるため、引数を In/Out パラメータとしてマーシャリングする必要がある場合には、InAttribute 属性と OutAttribute 属性を適用する必要があります。

Outがないと保証されない
0781デフォルトの名無しさん (ワッチョイ 4d06-7T4N)
垢版 |
2017/11/02(木) 22:48:20.45ID:uoctVHYW0
>>778
ref/outは書き換え云々というより変数の参照で初期化の必要があるかどうか、P/Invokeでは構造体くらいにしか使わぬ
配列は参照型なので参照の参照になるし、そのままでもオブジェクトヘッダ+要素数を含むのでネイティブ配列へはちょっとズラしている

>>779
上のページに>>780の通りずばり書いてないか?コピーと固定 # 書式指定された Blittable クラスのメモとかにも。そういう事ではなく?


既定のマーシャリング動作を理解し、MarshalAs属性とIn/Out属性を駆使すれば、Marshalメソッドの出番はあまりなくなる
Marshal.UnsafeAddrOfPinnedArrayElementとかもArrayWithOffsetというお誂え向きな構造体がある
手動でIntPtrを捏ね回すのが有効なケースもあるが。ちぃと古いけど↓の記事はよく纏められている
https://msdn.microsoft.com/ja-jp/library/ff647812.aspx#scalenetchapt07_topic4
0782デフォルトの名無しさん (ブーイモ MM62-pUQr)
垢版 |
2017/11/02(木) 22:54:42.83ID:vimPIuS6M
GCがうざいならstackallocを使う手もあるよ
unsafeになるけど、マネージ配列のマーシャリング使ったとしても境界外へアクセスしたら普通にクラッシュするんだし
むしろ危険な操作は明らかに危険とわかったほうがマシ
0783デフォルトの名無しさん (アウアウエー Sa4a-pdK9)
垢版 |
2017/11/02(木) 23:07:34.82ID:OVuNv67Pa
>>780-781
レスどうも

よく分からない箇所は結局、>>780に引用してある部分の
>同じアパートメントに属する場合には

この但し書きかな。
同じアパートメントって何だ?

>>778のケースでは結局Out属性なしでも期待通り動くみたいだけど、
逆にBittableであっても明示的にOutを付けないといけないのはどういう
場合なんだろうか
0784デフォルトの名無しさん (ワッチョイ 4d06-7T4N)
垢版 |
2017/11/03(金) 01:31:28.84ID:zjyHgUY90
>>782
stackallocはスタックを理解していなければ危険すぎないか、少量で確保速度が最重要ならアレだけど
unsafeポインターを使うならfixedでも境界チェックは外れるし、そのあたりで…

>>783
アーその辺はCOMの話かな、COMマーシャリングが挟まれると固定では済まなくなるという
https://msdn.microsoft.com/ja-jp/library/eaw10et3.aspx#marshaling_and_com_apartments
具体例については…直接COM使った経験がC++でちょろっとしか無いのでわっかんないや(無能
0785デフォルトの名無しさん (ワッチョイ 2ee8-zAbU)
垢版 |
2017/11/03(金) 04:43:40.14ID:ZqwqQq4y0
Parallelの動きがわからん
10個のZIPを同時に解凍する処理するとして

Parallel.Forで実行したらどうなる?
ちなcore i7
エラー?
0791デフォルトの名無しさん (ワッチョイ c2f7-48Ez)
垢版 |
2017/11/03(金) 17:10:18.04ID:bRMk/YPf0
c#で画像の黄色部分だけを白にして残りを黒にする様なことはできますか?
0798デフォルトの名無しさん (ワッチョイ 2ee8-zAbU)
垢版 |
2017/11/03(金) 19:43:53.45ID:ZqwqQq4y0
imagemagickってソースに組み込める何か提供してるん?
0800797 (ワッチョイ 2e9a-lboT)
垢版 |
2017/11/03(金) 20:02:57.12ID:Xp/sMfFK0
ついでに補足しておくとMarshal.ReadInt32でなくMarshal.Copyでバイト配列で4バイトずつ読めば
Blue,Green,Red,Alphaが取れるから許容範囲設定とかしたかったらそっちで
0804デフォルトの名無しさん (ワッチョイ 469d-Ab9z)
垢版 |
2017/11/03(金) 22:49:49.36ID:om2fc3b00
>>793-794
refで渡せば、呼び出し先の関数で、呼び出し元の変数のインスタンスを変更できる

これをやりたい状況がどれだけあるかとか、やるべきかどうかとかはおいといて
なんの意味もないわけではない
0806デフォルトの名無しさん (ワッチョイ c2f7-48Ez)
垢版 |
2017/11/04(土) 01:46:45.24ID:qZ8I6rgd0
>>797
ありがとうございます。
ほぼ真っ黒になってしまったのでRGB値で範囲指定できる様にやってみます。
0809デフォルトの名無しさん (ワッチョイ 0219-lboT)
垢版 |
2017/11/04(土) 09:02:47.97ID:5h9DYzfZ0
DataTable dt = new DataTable();

bool foofunc(ref DataTable dt)
{
  DataTable dt = new DataTable();
  ・・・・
  adapter.Fill(dt);

「なんの意味もないわけではない」のコードにはなったが
更に輪をかけた馬鹿コードに進化させてみた。 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
0812デフォルトの名無しさん (ワッチョイ 0219-lboT)
垢版 |
2017/11/04(土) 09:48:23.86ID:5h9DYzfZ0
>>811
そう、参照型にrefは無意味なのです。

参照型が分かってないよりこのコードが問題なのは、
検査結果を引数に返して実行エラーの有無を戻り値で返していること。

参照型も理解していないが例外処理はもっと理解していない糞野郎のコード。
0819デフォルトの名無しさん (ワッチョイ 49c9-lboT)
垢版 |
2017/11/04(土) 10:38:05.17ID:OcSSsXSe0
この手のメンバ変数に検索結果をセットする時はこんな感じにして、例外処理は基本呼出側に任せちゃうんだけど問題あるのかね?
前はエラーコードのEnum返してたけど、エラーケースの殆どが例外処理で扱われる物ばかりだったので止めちゃった

DataTable dt = new DataTable();

Void SetHoge(DataTable dt){
    ・・・・
    adapter.Fill(dt);
}
0827デフォルトの名無しさん (アウアウエー Sa4a-pdK9)
垢版 |
2017/11/04(土) 15:41:42.41ID:WuSfeAlZa
>>824
var y = 謎の変数x;

っていうか、たぶん何か勘違いしてると思うw

「型が分からない変数」っていうのは実行時に型が決まるって意味なんだろうけど、
変数の型は静的に(コンパイル時に)確定しているのでそれはありえない

それとも匿名型のことを言ってる?
0840デフォルトの名無しさん (アウアウエー Sa4a-pdK9)
垢版 |
2017/11/04(土) 18:10:38.00ID:WuSfeAlZa
なんかしょうもないことで争ってるけど、>>823の方が正しいね

エイリアスの機能がいらないならそもそもrefってキーワードも用意されてないでしょ
負け惜しみでくだらない意地を張るのは子供っぽいよ
0844デフォルトの名無しさん (ワッチョイ 42b3-r/51)
垢版 |
2017/11/04(土) 18:35:14.75ID:sTeHaJ1X0
>>840
> エイリアスの機能がいらないならそもそもrefってキーワードも用意されてないでしょ
???
refって参照型じゃなくても使えるんだが...
参照型にrefを使うことがほぼないだろって話だと思うけどな

> 負け惜しみでくだらない意地を張るのは子供っぽいよ
自己紹介は要らんよ w
0845デフォルトの名無しさん (アウアウエー Sa4a-pdK9)
垢版 |
2017/11/04(土) 18:40:28.61ID:WuSfeAlZa
>>844
意味が分からない

変数の値の利用と書き換えの両方が必要かどうかは、その変数の型が
参照型であるか値型であるかは関係ない。

何を言ってんの?
しかし、いい歳こいて幼稚な奴って嫌だねほんと
0848デフォルトの名無しさん (ワッチョイ 42b3-r/51)
垢版 |
2017/11/04(土) 19:12:51.54ID:sTeHaJ1X0
>>845
> 変数の値の利用と書き換えの両方が必要かどうかは、その変数の型が
> 参照型であるか値型であるかは関係ない。
えっ?
普通にググればrefが値型と参照型でどう使われてるかわかると思うんだが...
引っ込みつかなくなってるのかな

> しかし、いい歳こいて幼稚な奴って嫌だねほんと
また自己紹介ですか? w
0853デフォルトの名無しさん (アウアウエー Sa4a-pdK9)
垢版 |
2017/11/04(土) 20:49:38.51ID:mF4CZaPha
>>848
マジモンかよ

俺個人が使うか、あるいは一般に多用されるかどうかはともかく、
参照型であろうと変数の値(つまり参照)そのものを書き換えたいケースは存在すると思われる。

たとえばStringのようなイミュータブルな型や配列の長さのように変更できない要素を
持つ型の場合、元の値を利用しつつそれを加工した値を返すにはrefを使うしかない
0873デフォルトの名無しさん (ワッチョイ 4d06-dVlt)
垢版 |
2017/11/04(土) 22:40:24.62ID:WGNINBFE0
ファイルを削除や移動する前に、他のソフトで使用中かどうかを調べるのに
R/Wモードでオープンしたときに例外が発生するかしないかで判断するしか無い
この処理のときはcatchでfalse返して例外を握りつぶしている
0877デフォルトの名無しさん (ワッチョイ c28a-cDlW)
垢版 |
2017/11/05(日) 00:13:35.57ID:m9wZGInC0
例外をどこで処理するか(または投げっぱなすか)という基準をきちんと決めないとカオスになりがち
でも事前に決めて徹底させるのが難しい場面も多いのよね
0878デフォルトの名無しさん (ワッチョイ 2ee8-zAbU)
垢版 |
2017/11/05(日) 00:49:39.43ID:/t3HbS0w0
タスケテ!!!
RARを回答する方法がわからないの!
なんか組み込みでいいのないの!?
0881デフォルトの名無しさん (ワッチョイ e227-MwDY)
垢版 |
2017/11/05(日) 01:34:09.45ID:27Wvnc5t0
適当に検索してみたら、それなりにref stringとかを伴うコードがあった
最近のref絡みの言語拡張を見てもコンパイラ絡みのガチガチに最適化するところとかはref引数の使いどころがあるっぽい
https://github.com/dotnet/corefx/blob/ab0c04f10c8094731d13de6f0ceaa71dd776aa00/src/System.CodeDom/src/System/CodeDom/Compiler/Executor.cs

あと、二重ポインタを扱うPInvokeとかでもでてくる
0883デフォルトの名無しさん (ワッチョイ 2ee8-zAbU)
垢版 |
2017/11/05(日) 01:51:07.20ID:/t3HbS0w0
>>879
ぐぬぬだよ!
exeとdll持ってきてコマンドラインにするかあ
0884デフォルトの名無しさん (ワッチョイ 2ee8-zAbU)
垢版 |
2017/11/05(日) 02:12:10.73ID:/t3HbS0w0
外部のexeをインスタンス化してそれにコマンド発行ってできる?出来た気がする
7Zipを複数起動して複数ファイルの圧縮と解凍をしたいのよ
0885デフォルトの名無しさん (ワッチョイ 2ee8-zAbU)
垢版 |
2017/11/05(日) 02:25:25.39ID:/t3HbS0w0
ProcessStartInfoか
なんでもないです
0887デフォルトの名無しさん (ワッチョイ 2ee8-zAbU)
垢版 |
2017/11/05(日) 04:13:51.92ID:/t3HbS0w0
>>886
えー
SSDやRAMに出しても?
メモリ内で解凍してデータ加工して再圧縮できない?全部メモリ内で

外部ツール使ってたら無理か
0891デフォルトの名無しさん (ワッチョイ 0219-lboT)
垢版 |
2017/11/05(日) 08:45:03.60ID:TvjmwwI20
>>871
仕組みは良くわからんけどスタックトレースを辿るとかの処理が重いと思ってる。
速度の必要の無い処理はオレオレ例外投げてエラー処理してる。
その方がコードがスッキリ書けるし。
0893デフォルトの名無しさん (ワッチョイ 0219-lboT)
垢版 |
2017/11/05(日) 09:02:12.28ID:TvjmwwI20
>>877
例外をどこで処理するかは非常に簡単だが皆分かってない。

・例外をcatchして処理できる場合はcatchして処理する
・処理できない場合は何もしなくて(無駄にcatch throwもしない)呼び出しもとに任せる
・最後はAppDomain.UnhandledException等で拾ってログ吐いて落とす

何も出来ないのにcatchしてエラーメッセージだけ出すヤツ多すぎ。
0898デフォルトの名無しさん (ワッチョイ 711e-9Rqp)
垢版 |
2017/11/05(日) 10:20:40.26ID:vfJyTH9D0
アプリ作るたびに
ViewModelBaseのSetProperty<T>(ref T field, T newValue
を作って毎回使ってるな。
で、今ちょうどJavaでMVVMやってて、refないのでSetPropertyがかけなくてつらい・・
if (this.value != value) {
 this.value = value;
notifyほにゃ
}
refないのでプロパティ毎に3行書いてるんだけど死にたい。
0900デフォルトの名無しさん (ワッチョイ 711e-9Rqp)
垢版 |
2017/11/05(日) 10:56:36.45ID:vfJyTH9D0
んん??
どういうことそれ。引数2つ??
3つ使って
SetProperty<T>(T field, T newValue, Action<T> setterActon)
こんな感じならいけそだけど。
SetPropert(field1, 10, t => field1 = 10)
後は最後にproperyNameを渡す引数追加して。
0901デフォルトの名無しさん (ワッチョイ 711e-9Rqp)
垢版 |
2017/11/05(日) 11:01:15.31ID:vfJyTH9D0
SetPropert(field1, 10, t => field1 = 10)

SetProperty(field1, 10, t => field1 = t)だった
bool SetProperty<T>(T field, T newValue, Action<T> setterActon, string propertyName) {
 if (!object.equals(field, newValue)) return false;
 setterAction(newValue);
 onPropertyChanged(propertyName);
return true;
}
コンパイルしてねぇけどこんな感じかな。
0902デフォルトの名無しさん (ワッチョイ e227-MwDY)
垢版 |
2017/11/05(日) 11:11:46.25ID:27Wvnc5t0
>>888
前とは別の人だし、githubで適当に検索してみただけだから特に時間もかけてないんだけどね
roslynとかで"ref 適当な型名"で検索しても、何件か引っかかるし一応新しいコードでも(美しいかはおいといて)使ってるんじゃないかな
軽くしか見てないけどnullなら初期化ってしてるコードが多いけど、ArrayBuilerはある程度有効活用になってそうな雰囲気

ref値型いらないって言ってるのはホントの初心者でしょ
そちらは明らかに使いみちだらけ
0907デフォルトの名無しさん (アウアウエー Sa4a-pdK9)
垢版 |
2017/11/05(日) 12:03:01.14ID:8CRgy4j+a
まだ変なのが暴れてるけど、参照型であれ値型であれrefなんか必要ない、
であれば主張に一貫性があり一理ある。

筋が通らないのは。refは値型でしか意味がないという主張。
昨日説明した通り値型参照型の違いはrefの有用性と関係ない。

>>906
>>904がそうい言いたいのかどうか分からないけど、例外の処理方法や
どの程度「真面目に」処理するかだって所詮要件次第なのに、例外の話になると
妙に教条主義的になる変な人がいるのは確かだ
0916デフォルトの名無しさん (オッペケ Srf1-RCX9)
垢版 |
2017/11/05(日) 14:08:16.80ID:+CtSMn6Br
>>912
素人なら自作関数には両方使わない
唯一あるとすれば
パフォーマンスをシビアにする必要がある
かつフィールドをたくさん持った値型
の場合だがそんな状況はアプリにもよるがそうそう無い
0917デフォルトの名無しさん (ワッチョイ 6e8a-cDlW)
垢版 |
2017/11/05(日) 14:15:44.96ID:tjXjX3Hx0
>>893
と赤間さんが言ってたね
0919デフォルトの名無しさん (ワッチョイ 2ee8-zAbU)
垢版 |
2017/11/05(日) 18:22:15.77ID:/t3HbS0w0
藤原竜也に戻せよ
0920デフォルトの名無しさん (ワッチョイ 2ee8-zAbU)
垢版 |
2017/11/05(日) 18:23:05.50ID:/t3HbS0w0
誤爆
0926デフォルトの名無しさん (アウアウエー Sa4a-pdK9)
垢版 |
2017/11/05(日) 21:52:08.84ID:RoulHjpBa
>>922
ああこの記事ね。
個人的にはあんまりロジカルじゃないと思うんだよねこの記事。
読んでいて感じるいくつかの「なぜ」に対する答えがない

(1) エラーを業務エラーとそれ以外に大別するのはいいとして、なぜ前者に例外機構を
使ってはいけないのか?

(2) なぜ集約例外ハンドラーみたいなスパテッティーを推すのか。
そもそもそういうスパゲッティーを避けるための仕組みが例外機構ではなかったのか?

(3) いくら何でも
「よほどのことがない限り、アプリケーションで try-catch を書いてはいけません」
これは言い過ぎではないのか。
0928デフォルトの名無しさん (ワッチョイ 457f-XJHg)
垢版 |
2017/11/05(日) 22:12:12.00ID:5Sua66ij0
リトライとかの回復処理は全部ライブラリー内で完結してることが前提なんだろうな。
言いたいことは分からないでもないけど、想定しているアプリがすごく狭い気がする。
0934デフォルトの名無しさん (ワッチョイ 0219-lboT)
垢版 |
2017/11/06(月) 06:29:36.68ID:6qywALcU0
>>928
例外に落ちた時点で回復可能なエラーって限られてるぞ。
ファイルがロックされて書き込めないとか。
殆どは回復不能だし、デッドロックにしてもリトライするより適切にロックしているかやロジックを見直す必要があるだろうし。
ま、例外の原因で一番多いのは自分の仕込んだバグだw
0938デフォルトの名無しさん (ワッチョイ 46e7-SXc1)
垢版 |
2017/11/06(月) 16:16:18.79ID:sVTioIv70
ネットで更新してるアプリってテキストファイルの文字読み込んでプログラミングしてるんだなその方が変更しやすいのか?
0941デフォルトの名無しさん (ブーイモ MMb6-uPgn)
垢版 |
2017/11/06(月) 17:36:08.18ID:Z+IOadg3M
ランチャー的なフォームから小画面を起動するフォームアプリを作ったのですが、小画面大量に出すと重くなります。小画面毎に別スレッドで起動する方法を教えてください
0944デフォルトの名無しさん (ワッチョイ 46e7-SXc1)
垢版 |
2017/11/06(月) 17:48:57.32ID:sVTioIv70
なんだ勘違いかテキストで読み込んでるのは理由あんまりないんだ
0948デフォルトの名無しさん (ワッチョイ 2e9a-lboT)
垢版 |
2017/11/06(月) 17:56:54.41ID:JuX+gvIy0
>>945
フォームを別に表示したら元のフォームには影響しないし
10や20くらいの別フォーム起動したくらいで重くなったことはない
小画面で何をやっているかわからないしスレッド分けて〜では多分解決しない
>>944
スレ違いだと思うけどアンチウィルスのパターンデータ更新みたいなのと勘違いしているだろ
VisualStudioだってバイナリアップデートなんだから
0949デフォルトの名無しさん (ワッチョイ 417f-dVlt)
垢版 |
2017/11/06(月) 18:06:53.58ID:piexXh++0
関数にListを渡す時に関数内で要素を書き換えできないようにするにはどうすればいいですか
0950デフォルトの名無しさん (ガックシ 0626-a3yt)
垢版 |
2017/11/06(月) 18:08:01.18ID:QmwWSIUM6
無理です
0953デフォルトの名無しさん (ガックシ 0626-a3yt)
垢版 |
2017/11/06(月) 18:33:50.08ID:QmwWSIUM6
>>952
なにそれ
オブジェクトのリストを作ったとしてそのリストの要素のプロパティを書き換えるのも出来ない?
0965デフォルトの名無しさん (アウアウエー Sa4a-pdK9)
垢版 |
2017/11/06(月) 22:04:31.11ID:TDT9B1paa
>>962
まず重い原因を突き止めましょう。

純粋にFormのロード(表示)だけに時間がかかってるなら
個人的は軽量化は諦めた方がいいと思う

Loadか何かのタイミングで実行してる初期化が重いなら
そこを軽量化するなりタイミングを工夫するなり

個人的想像だと前者の可能性は低い気がする
というか、Vista時代のPCでも余程大量のコントロール乗せてたり
レイアウトパネル系を多用でもしてないとそこまで極端に重くはならんと思う
0966デフォルトの名無しさん (ワッチョイ 0676-9Rqp)
垢版 |
2017/11/06(月) 22:06:21.11ID:qEpy6DDg0
Listを抽象化したいのですが、どのように書けば良いでしょうか?
以下のように書けるかと思ったのですがダメでした
よろしくお願いします

interface ITest
{

}

public class Test: ITest
{
public string hogege { get; set; }
}

class Hoge
{
List<ITest> test = new List<Test>();
}
0967(ワッチョイ 0699-u4G3)
垢版 |
2017/11/06(月) 22:06:24.98ID:/hMSyilp0
>>962
単純にそのアプリ、親アプリと子アプリに別けて、親アプリから小アプリを10個起動したら駄目なの?
重い処理があって辛いぐらいの機能があるなら、1つの子画面で親ごと巻き込まれて死んでほしくないし、俺ならプロセスから別ける。

あと、非同期でやってる、の非同期がasyncなら、それは普通にタスクを切り替えるスキの間隔が広いかとか、諸々普通に重いだけじゃないの?
await Task.Delay(1)とか呼んでみたら?
0968デフォルトの名無しさん (ワッチョイ ad8a-cDlW)
垢版 |
2017/11/06(月) 22:11:16.29ID:AYpingtn0
>>966
右辺と左辺の型が違うじゃん
0973(ワッチョイ 0699-u4G3)
垢版 |
2017/11/06(月) 23:50:31.09ID:/hMSyilp0
>>969
プロセスの分け方も何も、今フォーム起こすのに使ってるメソッドの引数を文字列にして、Process.Startで起動引数にして起動するだけのイメージだったけど。
0974デフォルトの名無しさん (ワッチョイ 2ee8-zAbU)
垢版 |
2017/11/07(火) 01:00:13.01ID:cTk2bFo+0
Parallelって非同期でしか使えない?
0980デフォルトの名無しさん (スププ Sd62-cDlW)
垢版 |
2017/11/07(火) 15:05:18.45ID:+aQKsyS3d
リスト抽象化という分かってるようで何も理解できてないお題
0981デフォルトの名無しさん (ガックシ 0626-e3AS)
垢版 |
2017/11/07(火) 15:17:32.57ID:odkSTBx66
>>980
新スレ頼んだ
0983デフォルトの名無しさん (ワッチョイ 46e7-M99L)
垢版 |
2017/11/07(火) 16:33:19.67ID:pVSOD8mN0
抽象化して継承するのと基本クラスにして継承するのと使い道がわからんよな
0991デフォルトの名無しさん (アウアウエー Sa4a-pdK9)
垢版 |
2017/11/07(火) 20:49:14.24ID:bwe89n7Ka
>>986
その話は後付けだったと思うけどw

つまりC#(C sharp)っていう名前が決まったのが先で、よく見るとこれって+が四つでインクリメント演算子が2つの
ようにも見えるよねって話だったはず
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 29日 5時間 35分 9秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

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