ふらっと C#,C♯,C#(初心者用) Part128 [無断転載禁止]©2ch.net

レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん
垢版 |
2017/05/02(火) 22:05:40.13ID:OPFlvhxj
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

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

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

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

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

■前スレ
ふらっと C#,C♯,C#(初心者用) Part127 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1489498042/

■関連スレ
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/
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
2017/05/02(火) 22:06:57.98ID:WIY0Y0E6
var = 乙
2017/05/02(火) 22:27:22.22ID:zgEKCDSk
>>1おつ

そういえば、変数名にvarは使えるんだよな
int var = 0;
みたいなコードを見てギョッとしたおもひで
2017/05/02(火) 22:30:28.80ID:eRbWh9gN
responses.Where(i => i == 1).Select(x => "乙");
2017/05/02(火) 23:43:06.05ID:Tfdj4LyE
varがダメって人は変数名に型名つけたりするんかな
string hogeStr=getHogeMoji();
2017/05/02(火) 23:49:26.07ID:6QYZnmvB
ハンガリアン記法かよ
2017/05/02(火) 23:57:35.90ID:7jrBakQ7
var使うなもハンガリアンも同じ(間違った)問題意識ではあるね
2017/05/03(水) 00:31:58.92ID:kdqGhQXm
Linq使うなラムダ使うなvar使うな保守できない読めないって自分がバカなのをまず自覚してほしい
2017/05/03(水) 04:08:09.16ID:yIaEn83J
>>5
逆だろ
そんなの付けたくないのでしっかり型を明記して欲しい
2017/05/03(水) 04:10:11.89ID:tOtENMmp
>>8
俺からするとわざわざ読めない人増やして何がやりたいのかな?って思う
2017/05/03(水) 06:47:51.71ID:zkWNfzXl
>>10
俺からするとその程度で読めなくなるようなカスを集めて何がやりたいのかな?って思う
2017/05/03(水) 06:56:51.11ID:m1a7RzgX
>>10
>>11
同意件だわ。
2017/05/03(水) 07:00:27.28ID:Gc6xuRHP
>>9
型明記しなきゃわからないなら
画面内に型が表示されていないとわからないレベルでしょ?
2017/05/03(水) 07:02:38.18ID:EX/3Lz+X
まだ続けるのー><
2017/05/03(水) 08:31:00.19ID:VaB9PVwh
>>5
Javaかな?
2017/05/03(水) 10:33:26.27ID:TVGKVl2u
int x = hoge?.Value ?? -1;
これ一般的だよね?
2017/05/03(水) 11:02:17.93ID:a1mhcLpw
普通 var x = hoge.Value ?? -1;
2017/05/03(水) 12:08:34.66ID:9NtpzxGG
他人(MS)が作った言語に文句ばかり垂れてるヘタレ底辺
嫌なら自分で好みの言語作ればいいのに
2017/05/03(水) 12:18:23.58ID:O+hXuTVQ
>>17

hogeがnullだとぬるぽだから16が正解
2017/05/03(水) 12:34:48.91ID:IhwilyPb
>>18
そういうの滲み出てるからc#で作れるものって少ないじゃん
windowsアプリとゲームぐらいじゃないの?

ストアアプリも失敗
silverlightも失敗
WPFも失敗
Azureも失敗

c#で作れるものってWindowsFormとゲームしか残ってないよな?
2017/05/03(水) 12:39:43.55ID:32xBqvCb
>>20
ゲーム作れれば十分だと思うがOSとかドライバ作れないとだめなのか
2017/05/03(水) 13:20:53.94ID:VaB9PVwh
>>20
API
2017/05/03(水) 13:39:58.01ID:FWXQV7fR
>>17
こういう「リファクタリング」する人よくいるわ
なぜそう書かれているのかをあまり考えず簡略化してしまって結果動作が変わる
2017/05/03(水) 13:49:44.09ID:yMHwWAzs
>>16
まあ一般的になってきたかな
var x = hoge?.Value ?? -1;
2017/05/03(水) 14:27:23.36ID:PAB4dkAH
>>24
-1が何を指してるかわからないマジックナンバーだから本来は許されないが
MSも同じことをやってる
これは完全に悪習

たちが悪いやつになると-1を前提にして計算してぱっと見何をやってるかわからなくなってる
cのころifの判定に数式を入れて分岐してたのと同じぐらいの害悪

c#はifの判定結果がboolじゃないとコンパイラエラー
bool?もダメ
2017/05/03(水) 14:30:14.36ID:PAB4dkAH
nullをわざわざはじいておきながら-1というマジックナンバーを導入している
変な風習
将来はなくすべき
2017/05/03(水) 14:50:58.16ID:32xBqvCb
また俺がルールさんがやって来た
2017/05/03(水) 14:55:55.52ID:PAB4dkAH
仮に
var x = hoge?.Value ?? -1;
として-1が返ってきたとしてそれをそのまま使うのか?

そのあとif(x==-1)するなら最初からvar x = hoge?.Value ?? -1;なんてしないで
if(hoge==null)したほうがいい
2017/05/03(水) 14:59:59.06ID:Qe/Rl4Fq
ワッチョイが消えたせいで ID:PAB4dkAH みたいなヤツをNGに登録するのが面倒になったな
2017/05/03(水) 15:02:18.92ID:PAB4dkAH
理解できないならいいよ

おまけ
pythonとかじゃ配列にマイナス添え字が使えるので
indexの見つからない結果に-1は不適切
2017/05/03(水) 15:05:37.18ID:Qe/Rl4Fq
理解できるできないの問題じゃねーよ
ここは「初心者用」なんだよスレチ野郎はさっさと消えろ
2017/05/03(水) 15:08:37.35ID:PAB4dkAH
初心者の皆様へ

意味を持たない自分が勝手に決めた俺俺数字 -1は使わないようにしようね
こういうのはマジックナンバーと言って使うなとそのうち教わります
33デフォルトの名無しさん
垢版 |
2017/05/03(水) 15:14:01.74ID:EjDQxWog
初心者はまず使わないし式の意味わからないだろうから心配いらんと思うが
2017/05/03(水) 15:15:04.81ID:PAB4dkAH
var x = hoge?.Value ?? -1;が一般的とか使われるようになってきたとか
初心者に間違った知識を植え付けないほうがいいでは?
2017/05/03(水) 15:20:49.03ID:n3jwfd5I
日本語からまともにしとけタコ
2017/05/03(水) 15:23:23.86ID:n3jwfd5I
>>21
そもそもAzureは好調だがどこの世界の話をしてんだ
http://www.itmedia.co.jp/pcuser/spv/1705/01/news035.html
2017/05/03(水) 15:24:15.23ID:PAB4dkAH
俺のことはC#でググれとか言ってる岩永氏も同じレベルなんだからしょうがないわな・・・
2017/05/03(水) 15:24:54.24ID:n3jwfd5I
日本語からまともにしとけタコ
2017/05/03(水) 15:37:34.40ID:aKL6bPvW
まさか真面目に言ってるとは思わなかったw

var x = hoge?.Value ?? -1;
この-1がマジックナンバーかどうかはケースバイケース。
変数名がちゃんとしていて意図が読み取れれば-1の意味は自明な場合もある。

しかし、ID:PAB4dkAHみたいなのが職場におったらやりづらいねw
2017/05/03(水) 15:44:35.37ID:IGshBH22
全体の意図把握せずに一行だけ見て「初心者はこれをやってはいけない」
とか職場で言っていたら無能どころかキチガイ
2017/05/03(水) 15:48:17.50ID:aKL6bPvW
どんな道具も使い方次第で凶器にもなりうるわけで、
極端な話、こういう構文だから、こういう書き方だから一律にわかりづらいなんてことはなく、
すべてがケースバーケースなんだけど、そういう実質を自分の頭で判断する能力がない人が
羹に懲りてなますを吹いちゃうと、こういう形式にこだわるセキセントリックな奴になっちゃうんだろうね
2017/05/03(水) 16:30:05.97ID:QAOFniPk
>>30
サンプルと言うことが理解できないバカ w
43デフォルトの名無しさん
垢版 |
2017/05/03(水) 16:36:15.72ID:0sDWrHda
ID:QAOFniPk と言う無職
44デフォルトの名無しさん
垢版 |
2017/05/03(水) 16:45:45.69ID:0sDWrHda
この問題、誰か解いてクレ
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=2403
2017/05/03(水) 16:57:56.10ID:AgXd40Zr
言語の新機能が設計から実装に落とし込むための機能じゃなくて
厨房の工作レベルの計画性しかなくて呆れる
ラムダ式、var、linqとか
この設計を実現するために、この言語にはこの表現が必要なんだ!

って代物か?
なんか開発経験の浅い素人がちょっと変わった表現入れて見ましたレベルのゴミじゃね?
って言うのはさ、想定する理想の設計書が言語から見えない
こんなの続けてたら早めに終わるよ
46デフォルトの名無しさん
垢版 |
2017/05/03(水) 17:01:41.68ID:0sDWrHda
この問題、誰か解いてクレ
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=2403
2017/05/03(水) 17:07:52.89ID:FWXQV7fR
>>27
バカの>>17がバカを指摘されて発狂したんだろ
2017/05/03(水) 17:22:53.59ID:yMHwWAzs
>>43
無職としか言えないかわいそうな人乙
49デフォルトの名無しさん
垢版 |
2017/05/03(水) 17:34:31.33ID:0sDWrHda
夕食

はい、無職いがい言えました

少ない情報でそんな結論に到達する
 お前の頭のほうが可哀想だろ?
2017/05/03(水) 17:38:25.57ID:lLL2BOd0
人にばっかり矛先むけてても仕方ないだろうに
2017/05/03(水) 17:54:58.75ID:n3jwfd5I
まずC#書いてから参戦!してくれよな〜たのむよ〜前スレ514さんよ〜
2017/05/03(水) 17:59:11.59ID:I7VBe2qC
>>51
あれ結局XmlNodeListだとvarで表示されないって話だった
2017/05/03(水) 18:03:08.53ID:yMHwWAzs
夕食?
本人は面白いんだろうな...
こんな少ない情報で語彙のレベルがわかるのも珍しい w
54デフォルトの名無しさん
垢版 |
2017/05/03(水) 18:10:02.53ID:0sDWrHda
秋田
2017/05/03(水) 18:27:33.19ID:lLL2BOd0
まだvarの話してるの?
2017/05/03(水) 18:30:30.49ID:tOtENMmp
var使うためにはvarのためにコードを記述しないと動かない
var出ないコードで動いてもvarで動くとは限らない
のでますます使いたくない
2017/05/03(水) 18:31:45.96ID:rxLV1vbf
>>56
varのためにコードを書くって何?
2017/05/03(水) 18:37:25.34ID:FY5OfGG/
>>57
XmlNodeListをforeachでvarが使えるように改造してみればわかるって
2017/05/03(水) 18:42:16.99ID:b5hGVml5
ジェネリックの話は恥かくだけなんだからやめればいいのに
2017/05/03(水) 19:33:55.40ID:yMHwWAzs
>>52
それじゃなくて
>> 514
> カーソル当てて見れるのって実行中だけじゃねっけ?
でしょ
まあデータヒントと勘違いしたんだろうけど恥ずかしいのには変わりないわな
2017/05/03(水) 19:34:18.34ID:wynseuBM
恥を書いたと思わなければ怖くない
2017/05/03(水) 20:53:55.67ID:n84gKlGC
>>60
でも実行中しか見れないのもあった気がするから
今度メモっとくよ
そのおかげでいちいち実行して型調べてってやってた記憶がある
2017/05/03(水) 21:34:58.23ID:VaB9PVwh
>>62
dynamicと勘違いしてね?
2017/05/03(水) 21:37:52.83ID:R0gUGf9P
>>63
それも含めて見とくよ
2017/05/04(木) 02:39:11.85ID:EbOwgvak
>>58
varが使えないのは型変換やキャストが伴うときだけのはず
キャストならもちろん実行例外になる可能性もある
「varでないコードで動いてもvarで動かない」時は型変換伴う特殊なコードを記述してる時だから、それを気付けるのはむしろメリット

そもそも、今XDocumemtじゃなくてXmlDocumentを使う必要って何かあるんだっけ?
2017/05/04(木) 08:50:18.79ID:FtLavEYm
頭とコードが古い時
2017/05/04(木) 08:58:08.55ID:3md+aC3g
>>65
なんでお前が文句言ってるの?w
2017/05/04(木) 09:28:21.01ID:CuDuyn93
他でやれ
2017/05/04(木) 09:35:08.90ID:F88t7MBG
>>66
なんか笑たわ
2017/05/04(木) 12:55:34.05ID:jK3vPaI/
実のない議論がよっぽど好きなんだろうな
「絶対使え」VS「絶対使うな」になっている人もいるみたいだし
こんな連中が仕事でやっているとか信じられなーいw
2017/05/04(木) 12:56:57.95ID:3md+aC3g
>>70
お前はどういうスタンスなの?
2017/05/04(木) 13:51:19.59ID:CuDuyn93
追及がうちのオカンみたいで嫌。
他でして
2017/05/04(木) 19:53:19.56ID:OUarxtpR
議論はこっちへ行ったほうがいいでは?

C#, C♯, C#相談室 Part94 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1492843013/
2017/05/06(土) 03:15:29.49ID:pFOk+Mr/
<MouseBinding Gesture="LeftClick" Command="{Binding PlayCommand}" CommandParameter="{Binding ElementName=mediaElement}"/>
ViewModelでmediaElement.Play()
とやっているんですが、ViewModelで直接GUIを操作するのは良くないですか?
2017/05/06(土) 04:19:00.57ID:JAj3fJt6
>>74
いいんじゃねぇの
どうせVisibilityとかBrushとかVMに持ってるんだろ?
それらと同列だよMediaElementだって。

完全に分離するならVMでSystem.Windowsをusingした時点で負け
2017/05/06(土) 08:26:31.08ID:2V5tVO5D
実はIValueConverterインターフェイスの指定がなかったオチだったりしてな
2017/05/06(土) 11:00:33.89ID:T6Jlq3rr
>>75
PointとかRectぐらいVMで使ってもいいじゃん…
2017/05/06(土) 12:57:36.09ID:8ByKHzLH
randomって今時デフォシード秒単位なのかよ
毎回インスタンス作ってたウンコプログラムで同じのがで続けて困ってたw
まぁバグを分かりやすくしてんのかな?
2017/05/06(土) 13:10:52.42ID:dk2lz/cl
後方互換性ってやつじゃね
2017/05/06(土) 18:39:57.03ID:fDXZMCmx
C#でOleDbConnection使わずにmdbファイルにアクセスする方法ってありますか?
2017/05/06(土) 19:05:23.36ID:T6Jlq3rr
OdbcConnection使えば良いよって話?
2017/05/06(土) 20:02:04.84ID:rojhZA3i
VBSを呼べば
83デフォルトの名無しさん
垢版 |
2017/05/06(土) 22:26:19.40ID:E68EYTdk
varの話してもいいですか?
2017/05/06(土) 22:34:35.43ID:OtjUCwsv
スレチ

C#, C♯, C#相談室 Part94 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1492843013/
8580
垢版 |
2017/05/07(日) 03:10:43.47ID:GwfheDvL
作った方はもう居ないんですがOleDbConnectionでConnectメソッドを呼び出しているわけではないんです
なのにmdbファイルから読んでいるみたいなのです。変数の定義元に行っても以下のように書いてあり、拡張子は.csではないです
hogehoge {
}

これってどうやってmdbファイルにアクセスしているんでしょうか?エスパーになりますがよろしくお願いします
2017/05/07(日) 09:25:44.48ID:2TKwZSPE
1.OleDbConnectionクラスなの?派生なの?
2.それはOpenメソッドを呼び出しいるの?
3.mdbファイル名がプロジェクトの定数に設定されてない?
4.変数の定義元のファイル拡張子ってなに?

どーせDSN接続とか、接続文字列リソース内にありましたとかじゃねーの
2017/05/08(月) 11:19:55.50ID:wMNFDEx6
entity frameworkじゃないの
8880
垢版 |
2017/05/08(月) 19:27:02.19ID:omDRiSwu
拡張子はxsdでした
3みたいに定義はされていましたが何なのかわかりません
2017/05/08(月) 20:33:49.00ID:lAGwTMvd
entity framework
90デフォルトの名無しさん
垢版 |
2017/05/11(木) 00:02:37.39ID:In0r9D2X
初心者質問で申し訳ないのですが
form1が親フォーム、form2が子フォームの時
form1にform1のコントロールを操作する関数があり、form2からその関数を実行するには、form2のコンストラクタにform1のオブジェクト(f1)を渡せばf1.hohe()のように実行出来るのでしょうか
適切な方法がいまいちわかりません。どなたかご教授頂けると助かります
2017/05/11(木) 00:17:22.57ID:1Awx/Lc+
>>90
コントロールを操作するメソッドをpublicかinternalにしておく
そのうえでForm1のメソッドに繋げる
http://tukaenai-pg.cocolog-nifty.com/blog/2006/05/c__2de6.html
これはコントロールの値の参照の場合
メソッドを使う場合は.textBox1.Text;の部分を差し替えればいい
92デフォルトの名無しさん
垢版 |
2017/05/11(木) 00:18:13.36ID:deUGmbrA
varの話してもいいですか?
2017/05/11(木) 00:20:37.09ID:tLIafHnt
>>90
確かにForm1のメソッドをpublicかinternalで公開して、Form2がForm1のインスタンスを
何らかの方法で持てば実現できるけど、あくまで一般論で言えばFormのメソッドを
外部に公開するのは不適切な場合が多いと思うよ

普通は、

Form1からモデルMのメソッドを呼び出す

Mが何らかのイベント発生

Form2はMのイベントを受信して何か処理をする

こんな流れじゃないの?
2017/05/11(木) 00:27:17.35ID:OONLth3D
いいです🙆
95デフォルトの名無しさん
垢版 |
2017/05/11(木) 00:40:50.67ID:Wt/R3NkD
>>91>>93
ありがとうございます

>>91で紹介された方法で実行しようと考えてたのですが、>>93の指摘からform2にイベントハンドラを追加してコールバックイベントで実行するのが良さそうですね
再度検討してみます
2017/05/11(木) 09:10:31.71ID:HCpPVWHs
>>93
Form1からモデルMのメソッドを呼び出す

Mが何らかのイベント発生

Form2はMのイベントを受信して何か処理をする

Form2がなんらかのイベント発生

Mがイベントを受信してイベント発生

Form1がMのイベントを受信してコントロールを操作する

アホみたいな設計だな
2017/05/11(木) 09:20:01.82ID:MNNhzL+Y
なんかもっとイケてる方法ないの?
その方法カッコよくないよね
2017/05/11(木) 09:24:12.50ID:HCpPVWHs
>>90
普通に
form2.form1Action+=()=>{form1.checkBox1.Checked=true;};
でいい
2017/05/11(木) 09:35:36.76ID:HCpPVWHs
form2はform1のコントロールの一つであるという考え方でいい
2017/05/11(木) 10:04:09.58ID:bPF/k6WN
まあ、どうしてVとMを分離するのか理解してないとそういう発想になるね
なんでそんな回りくどいことをする必要があるんだ!って(笑)
そういうのは部分最適って言うんだけどさ
2017/05/11(木) 10:37:36.53ID:k8LkF3Rq
場合によるでしょ
社員のセクハラが発覚したら人事から懲戒処分が出るみたいな処理を>>98みたいな実装するのは最悪だけど、
ビューに閉じた処理なら別にいい
2017/05/11(木) 10:55:36.58ID:bPF/k6WN
あんまり思いつかないけど、そういうケースもないことはないかもね。
2017/05/11(木) 11:15:50.68ID:Nmw4yzni
そもそも画面を2つも3つも作る設計が駄目
って中々言いにくいんだよな
メインの画面遷移とウインドウは有っても確認ダイアログ程度ってのが使いやすいんだが
2017/05/11(木) 15:58:59.55ID:ZJ7VD95O
MDIとかツールウインドウとかさすがにねー
2017/05/11(木) 19:41:47.03ID:RBlNyTa4
デザインパターンってそんなに大事ですか?
2017/05/11(木) 19:46:42.73ID:7SeHLwtP
大事だけど、こだわりすぎると馬鹿の一つ覚えって言われるだろうね
2017/05/11(木) 19:51:33.23ID:Fmy4inGe
すべてをあてはめることが正とまでは思わんが過去に生まれて今まで生きてる考えは大切にしたい

あと意志疎通するときに共通言語があるとやりやすいってのもある
108デフォルトの名無しさん
垢版 |
2017/05/11(木) 22:34:16.25ID:Wt/R3NkD
Formアプリケーションのdatagridviewなんですが
プロパティである列だけボタンセルにしたとき、初期処理で空の100行を作るとボタンにした列に全てボタンが並びます
これを最初の列に値が入ってるところだけ、ボタン表示させることって出来るでしょうか?
例えば100行のうち最初の10行だけセルに値が入り、ボタンも10行目までしか表示されないといった感じです
109デフォルトの名無しさん
垢版 |
2017/05/11(木) 22:38:08.56ID:/9yi1ILC
>>98
ありがとうございます
指導頂いた方法でも試してみます
2017/05/11(木) 22:51:43.92ID:RY17F3BC
リークする可能性がない場合でもイベントにラムダ式を登録するのは
なんか嫌だね。

これはvar使うなみたいな教条主義じゃなくて、実際問題
コードの見通しを悪くするだけの場合の方が多いと思う。
2017/05/11(木) 23:07:09.06ID:7mMTZtUa
突然どうしたの?
112デフォルトの名無しさん
垢版 |
2017/05/11(木) 23:12:34.95ID:deUGmbrA

varに殺された人の怨念が渦巻いておる
2017/05/12(金) 01:12:38.15ID:Z8esmvE1
>>111
突然起こるから発作だろう
2017/05/12(金) 01:26:40.80ID:6t2nmHwz
直前にイベントにラムダ式食わせるコードが出てきてるのにアホか
2017/05/12(金) 03:37:10.22ID:buo/LFts
>>105
だいたいこんなんある、とだけ知っておいて必要時に調べる程度でいいと思う

無理になんかのパターンに当てはめようとしてクラス図書きました
結果いろいろマズくてAdapterで接ぎました
とか笑い話にもならん
2017/05/12(金) 05:08:51.27ID:TAIwSt7O
>>114
そんなのないよ
2017/05/12(金) 05:23:52.24ID:QHw9MbYN
横レスだが、>>110の直前、>>109でお礼言ってる先(>>98)に件のコードあるけど。。。
2017/05/12(金) 05:35:38.08ID:3U2TPXlN
イベントじゃねーw
119デフォルトの名無しさん
垢版 |
2017/05/12(金) 15:28:11.73ID:rar2tz1g
https://msdn.microsoft.com/ja-jp/library/system.collections.ienumerator(v=vs.110).aspx

このスクリプトの、Peopleクラスのprivate Person[] _people;に
Personクラスのインスタンスを3つ代入した後の動作が全くわかりません。
どのタイミングでGetEnumerator()が呼び出されるんでしょうか?
GetEnumerator()が呼び出されたとしても、public Person[] _people;に値が代入されてから
IEnumeratorの実装メソッドがどこで呼び出され、どのように互いに影響してるのかわかりません。
どなたか教えていただけますでしょうか?
2017/05/12(金) 15:39:20.58ID:RyB9wBnj
>>119
foreach文はGetEnumeratorやIEnumeratorの実装メソッドの呼び出しに展開されるので、そこで呼び出されてる

どう展開されるかはググれば出るだろうから調べてみて
2017/05/12(金) 16:16:55.87ID:1e2m781m
>>119
まずforeachはpeople.GetEnumerator()を実行して
IEnumeratorを取得します
あとはそれを使って反復処理を実行します
PeopleクラスはPeopleEnumというEnumeratorを使っていますよと示しているだけ
122デフォルトの名無しさん
垢版 |
2017/05/12(金) 18:09:13.09ID:rar2tz1g
>>120>>121
GetEnumeratorの呼び出しのタイミングが解かったら、IEnumeratorの処理もなんとなく理解できました。
ありがとうございました。
2017/05/12(金) 20:01:54.80ID:jvu/Dkon
SQL Server 2012にあるデータ(ビュー)を取得し、それを条件で絞ったあとDataGridViewで表示させたいのですが自分の知識不足かうまくできません
DataGridViewのDataSourceプロパティにDataSetを指定するのが一番簡単なのかと思うのですが、クエリを動的に指定できず・・・挫折しました
2017/05/12(金) 20:03:15.18ID:jvu/Dkon
途中で書き込んでしまいました
どうすればもっと簡単にできるでしょうか?
2017/05/12(金) 22:17:23.05ID:TH+jg9IW
DataSourceにできるかどうかしらんが

DataView使う
LINQ(to DataSet)でデータセットいじる
DataSetやめてEFつかう

お好きな方法でどうぞ
2017/05/12(金) 23:01:40.87ID:zdRCMQUQ
無理せずAccess使えばいいのに
遥かに簡単にまともなものができるよ
2017/05/13(土) 00:04:19.15ID:7TpNqaHY
>>123
DapperとLinqを使った方が簡単だよ
DataSetは精神鍛錬のための苦行以外では使い道がない
2017/05/13(土) 01:03:37.34ID:a0E3nt9G
Dapper+SQLiteのお手軽感
EFもSQL Serverも二度と使いたくない
2017/05/13(土) 01:35:24.98ID:sHoGv97L
タスクバー常駐型のアプリを作ってます。
起動時に確保したヒープを起動中は保持し続けてるのですが、
この領域が長期間運用中もビット化け等を起こしていないかチェックするには
どのような方法があるでしょうか?

またECCメモリだとビット化けの心配は無いのでしょうか?
2017/05/13(土) 02:44:06.49ID:D+nN5dSS
CRCとか?
2倍の領域を確保してミラーリングみたいにするとか?
どっちにしろC#向きじゃないような気が...
2017/05/13(土) 02:58:37.95ID:a/q/GLOb
>>129
ECCメモリーは、訂正可能なエラーは文字通り訂正されるから、化ける確率はずっと低くなるけど、
稀に訂正不可能なエラーが発生する場合もあるから、全く化けないわけじゃない。
132129
垢版 |
2017/05/13(土) 03:16:23.00ID:sHoGv97L
C#でDictionary構造を保持しています。
Dictionaryに格納しているデータは任意のタイミングで変更されます(頻繁ではない)。

データに変化があるたびにDictionaryをバイト配列に変換してサムを算出し、
定期的にチェックサムするっていう方式はビット化けに対して有効でしょうか?
2017/05/13(土) 06:08:23.80ID:xwwURnHm
>>132
誰がDictionaryにアクセスすんの?
bit化けはマジで起こってるの?
2017/05/13(土) 06:43:20.62ID:R3eq2uIx
>>132
メモリが勝手に化けることを想定したらプログラミングは全く成り立たないので無視
ユーザーコードからの普通の書き込みについては、Dictionaryを直接晒さずに特定のメソッド経由で書き換えさせるようにすれば確実にフックできる
2017/05/13(土) 06:56:04.40ID:499UT8S9
>>132
こういうレイヤを分けて考えられない奴っているよな
特にインフラ系から来た奴にありがち
「変数が多いなら抽象化しろ」という考え方が理解できず、
if一行足せば済む問題を必死でネットワークの設定弄り続けて回避しようとする
2017/05/13(土) 07:45:25.35ID:RjzTmCQE
>>135
前半はわかるけど後半は何を言ってるのかさっぱりわからん
2017/05/13(土) 10:22:57.83ID:hW1ZB19M
みんなー
Fluent Design Systemってどう思う?
2017/05/13(土) 10:28:08.84ID:8MiIMg7T
デザインは語るよりまともな実例を出してくれと思う
2017/05/13(土) 10:31:06.98ID:hW1ZB19M
やっぱりXAML習得は必須になってくるのかな
2017/05/13(土) 10:34:05.94ID:hW1ZB19M
>>138
nugetでサンプル例を公開みたいな流れで、プロジェクトをダウンロードしても内容が訳ワカメなんだろうね。

( ノД`)…
2017/05/13(土) 11:11:42.14ID:+l0G/mJC
>>140
動画出ているけど、メトロ3Dって印象だな
2017/05/13(土) 11:35:29.87ID:0mphNaBc
>>139
要らないよ
2017/05/13(土) 11:45:53.97ID:rBo1iP3S
文化の違いがどうしようもない

日本人は縦横の線が入った表に慣れてる
アメリカ人は線がない方が好み
2017/05/13(土) 11:49:23.12ID:CaysMjy5
ラテン系の書体はベースラインがきっちり出るから線いらんのよね
2017/05/13(土) 11:53:44.13ID:dy2hOgSI
>>143
WPFのListViewにデフォルトで罫線が無いのがその理由とかまさかないよな・・・
2017/05/13(土) 13:45:34.70ID:imuXkIUh
そもそもWPFは論理的レイアウトに隅々まで拘った極めて欧米的な設計思想で作られていて、
Excel方眼紙を愛する未開の列島民族が手を出しちゃいけない代物だよ
2017/05/13(土) 14:03:04.20ID:0mphNaBc
確かに国産のアプリってUIのレイアウトがしっちゃかめっちゃかだよな
画面だけ見てもモデルがパッと頭に浮かばない
これじゃユーザーも自分は今何を操作しようとしてこの画面を開いてるんだろうって混乱すると思うのだが
そういうこと考えないのかね日本人って
2017/05/13(土) 15:23:35.46ID:uYz1OrPp
レイアウトとかユーザービリティーに無頓着なのは
どちらかと言えば欧米人の方だと思うけどね。

っていうか、欧米はガイドラインやコンセプトの設計者は優秀なんだろうけど、
現場の下っ端がアホなんだろうね。
2017/05/13(土) 16:45:22.48ID:BGrmsOZ0
>>137
winform以外使わないのでギルティ
150デフォルトの名無しさん
垢版 |
2017/05/13(土) 17:15:40.88ID:fNJg9X4W
日本人は、ってわけでもないと思うんだけど、現場に近い人間ほど、枝葉末節まで詳細に決めたがる(決めさせたがる)くせに、UX基礎知識が無くてオレオレルールを押し付ける傾向にある気がする。
だから、何でも出来るポテンシャルはあるんだけど、やり方が全く理解できずに、結局何にも使えないガラクタが多い感がある。
使用者に勤勉を求めるUIは悪だよな。
2017/05/13(土) 17:25:13.23ID:BGrmsOZ0
デザインはわからんなぁ
一点透視図で矛盾なく並べたところで「だっせぇ」って言われたら終わりだしね
2017/05/13(土) 18:28:53.63ID:0mphNaBc
デザインはともかく使い勝手が悪い
無駄な入力項目多すぎ
153デフォルトの名無しさん
垢版 |
2017/05/13(土) 18:49:49.73ID:fNJg9X4W
「見栄え」って意味のデザインは、ぶっちゃけどうでもいいと思ってる。
それは主観評価だからねー。
愛着には関係するけど、使い易さへの影響度はほとんど無いと思う事ね。

入力項目多すぎとか、あるあるだよね。
2017/05/13(土) 19:04:41.24ID:pWdVX1kE
>>150
あるあるw
2017/05/13(土) 19:24:03.68ID:0mphNaBc
未だにウィンドウサイズ固定のウェブサイトを発注する顧客
2017/05/13(土) 22:32:34.54ID:03xZTs2a
>>153
V2Cか
2017/05/14(日) 10:47:33.08ID:0uI+mSYs
ゲームやドロー系除いてタブ移動やフォーカス管理がちゃんと考慮されてればデザインなんて気にしないよ
今はOS自体がそういった基本UI変えてくる糞になってるけど
2017/05/14(日) 10:56:41.46ID:R3oKaNsf
モデルオブジェクトを取得して
新しい内部状態を入力して
送信して保存する
こういうUIは使いにくい

モデルオブジェクトを取得して
メソッド引数を入力して
送信してメソッドを呼び出して保存する
こういうUIは使いやすい
159デフォルトの名無しさん
垢版 |
2017/05/14(日) 12:45:40.06ID:m/JH8Lz+
エラー原因だれか解りませんか?
http://fast-uploader.com/file/7050289086526/
2017/05/14(日) 12:52:31.91ID:lkoSpA4d
クラスに直接メソッド書くなボケ
2017/05/14(日) 14:44:51.94ID:3fFVFQc0
>>159
想像以上で笑ったわw
2017/05/14(日) 14:53:29.82ID:6c+QVGB4
pythonかな
2017/05/14(日) 14:55:13.18ID:8Y89/URi
> クラスに直接メソッド書くなボケ
えっ、普通そうするやん
って思ったら直接文を書いてたのか w
確かに想像以上だわ
164デフォルトの名無しさん
垢版 |
2017/05/14(日) 17:05:55.65ID:m/JH8Lz+
関数名とか日本語ですけどダメですかね?
なでしこ言語から入ったので、まぁいっかな、とか思ってます。
2017/05/14(日) 17:36:53.86ID:91rbLpE3
>>164
もう消えてるじゃねーか。まあ相当だめなんだろ、リーダブルコードでも読め
2017/05/14(日) 18:18:55.08ID:GJiVsoER
レビュアーの評判を見るに関数名が日本語とかいう問題ではなさそうだ
2017/05/14(日) 18:21:04.68ID:VOaapSFu
変数名だろうがメソッド名だろうが日本語にしても問題ないからな
もしIDEにエラー表示出ているのなら、ここで聞くのは荒らしレベル
2017/05/14(日) 18:37:02.94ID:3p+3tmMb
>>167
>>1
初心者がIDEのエラーメッセージを読めると思うか?
2017/05/14(日) 18:37:42.17ID:gsPHEnab
>>168
今時ググるぐらい中学生でもできるだろ
2017/05/14(日) 18:41:14.47ID:VOaapSFu
>>168
日本語読めないのなら初心者未満だな
お前はいちいち誰かに解説してもらったのか
2017/05/14(日) 18:45:25.68ID:3p+3tmMb
テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい

C#, C♯, C#相談室 Part94 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1492843013/

ググればいいというのは確かだが聞いたら荒らしとかないわ
2017/05/14(日) 19:01:05.15ID:Niyp1tN0
初心者を見つけたら急に強気になるやつ
2017/05/14(日) 19:04:12.94ID:m1coD/cI
個人レベルなら変数名、メソッド名に日本語使うのはおk
訳の分からない英語にするよりはいいんじゃないか?

ダメな例
void Convert_Data()

void Method_01(int i)
2017/05/14(日) 21:04:12.46ID:3fFVFQc0
うちのも変数メソッドは日本語にしたくなって来た
辞書引いたりググりながらやったりして調べてるけど後で見返すと読めないのがあったりして困るときあるし
2017/05/14(日) 21:30:38.16ID:8Y89/URi
VBA で将来自分が保守しないコードは日本語識別子にしてる
あとデータベースの表名とか列名も日本語だな
それ以外は習慣でまだ英字だな
2017/05/14(日) 23:48:21.63ID:nhCIier5
日本語は複数形がないのがな
2017/05/15(月) 00:06:55.65ID:rEp2NUpi
>>176
ああ、それはたまに思うね
2017/05/15(月) 00:13:11.99ID:WWr1mKyF
複数とか諸とか「たち」とかつければOK
まあ日本語なんてインテリセンス殺しの名前は俺は絶対使わないけどw
2017/05/15(月) 00:44:55.37ID:Fre6jJ42
質問です
ApplicationSettingsBase(を継承したクラス)において
applicationScopedSetting 属性をつけたプロパティのデータが保存されません。
(userScopedSetting のものは保存されます。)

applicationScopedSetting属性のものはどうやったら保存されるのでしょうか。
また、どのような使い道があるのでしょうか。

おねがいします
2017/05/15(月) 01:46:58.70ID:H6WdDjEY
設定プロバイダを自作しないと保存できないんだったか

使い道?アプリケーションで共有する読み取り専用の値を書くんだよ
DB接続文字列とか
181デフォルトの名無しさん
垢版 |
2017/05/15(月) 15:15:02.32ID:DW83hE61
お前らthisつける派?
2017/05/15(月) 15:45:00.88ID:uzaXOcwn
>>181
初心者の俺もそれ知りたい。
偉そうにしてる皆さん達による個々の信仰からのバトルを期待。
2017/05/15(月) 15:54:57.49ID:APQEqBwf
あえてthisを付けるのが正当化されるのは、引数やローカル変数の値を同じ名前
(またはキャメル形式かパスカル形式かだけが違う)のプロパティーやフィールドに
代入する時ぐらいかね。
2017/05/15(月) 16:29:55.58ID:zwx/TTMf
this や self だけじゃなく呼び出し側オブジェクトも
his とか her で参照できていたらパラダイム変わってたよね
2017/05/15(月) 16:55:55.59ID:a/4QJWcH
つける方が好きではあるんだけど、VSだかReSharperだかが消せって言ってくるのでそっちに合わさせたかなぁ
2017/05/15(月) 17:45:39.33ID:S+zSCdGp
メンバー変数を表す接頭辞付ける位なら、thisを付けるな。
187デフォルトの名無しさん
垢版 |
2017/05/15(月) 18:25:08.24ID:cef61/4v
C#で何つくれば一人前なん?
2017/05/15(月) 18:27:39.72ID:oiOdc9uz
>>187
d#
189デフォルトの名無しさん
垢版 |
2017/05/15(月) 19:14:36.37ID:7MwFbRFx
普段this付ないや規則があれば付けるけど
2017/05/15(月) 19:34:09.15ID:ufmd9LL8
結構なんでもthisつけてる
VSには消せっていわれるけど
2017/05/15(月) 19:42:05.75ID:1kHxYJuC
全部のメソッド呼び出しにthis付けているソース見たことあるわ
baseが見辛かったことだけ覚えている
2017/05/15(月) 19:57:23.39ID:oD/+uina
>>183 に一票
2017/05/15(月) 20:25:23.57ID:i6MkOOpj
>>190
に一票
2017/05/15(月) 20:29:21.58ID:DeqHpRpX
VSの初期設定がthisを消しているのでそれに倣ってるわ
2017/05/15(月) 20:31:14.94ID:LCesVlrN
>>194
初期設定でも場合によるだろ
2017/05/15(月) 20:58:22.16ID:MBLyoBiO
最近はインテリセンスも賢くなったからthisは消してる
昔はthis打った方が補完が安定した
197デフォルトの名無しさん
垢版 |
2017/05/15(月) 20:59:47.42ID:cef61/4v
入門書読んでるけど、キーワードが80個しか無いってホントなん?
コンテキスト キーワードのみって事なん?
2017/05/15(月) 21:02:57.01ID:wlL0huyV
>>197
https://docs.microsoft.com/ja-jp/dotnet/articles/csharp/language-reference/keywords/index
199デフォルトの名無しさん
垢版 |
2017/05/15(月) 21:18:38.92ID:QfNwrH5V
c#について質問です。
生成したファイルを実行時に呼び出したいんですが、
絶対パスで指定している場合、環境が代わってしまうと
パス変わってしまうので読み出せなくなってしまいます。
どの環境でも正しく読み出せるように
絶対パスではなく実行ファイルのディレクトリに
ビルド時に生成するものを作りたいんですが
どうすればよろしいでしょうか?

なんとなくリソースなどにファイルを追加設定すればいいのかと思ったのですが
実行してもどこにも生成されませんでした
VisualStudioの扱いに慣れてなくて申し訳ございませんが
そのあたりご存じの方いたら教えてください。
200デフォルトの名無しさん
垢版 |
2017/05/15(月) 21:27:26.62ID:cef61/4v
>>198
今見てるサイトで笑った
2017/05/15(月) 21:38:24.07ID:fLE+TSDI
>>199
色々やるなら Post Build のところにシェルスクリプト書いておく
単にファイルをコピーするならソリューションに追加して、
プロパティでコピーするよう設定する。

↓これのスコア49のとスコア12の回答を参照
http://stackoverflow.com/questions/747941/copying-files-into-the-application-folder-at-compile-time
2017/05/15(月) 23:59:09.51ID:MBLyoBiO
msbuildはタスク追加めんどくさいよね
Coreになった時にcsproj引き継がないでgradleライクなスクリプトに変えればよかったのに
2017/05/16(火) 00:50:21.88ID:VcPDtcgU
xmlはすべて追い出せ!
2017/05/16(火) 01:09:46.21ID:l59jFeCL
JSONよりはわかりやすいだろ
2017/05/16(火) 10:27:28.95ID:JvSvSRd1
Formアプリケーションを作成しているのですが
複数のクラスで発生したそれぞれのエラーをエラーが発生した時に
メッセージボックスに表示してかつログに書き込みたいですのですが
各クラスにはどういう実装をするのがいいのでしょうか
206デフォルトの名無しさん
垢版 |
2017/05/16(火) 10:49:45.75ID:z70mDz+n
C#
ボタン配置しても、ダブルクリックでコードが出ない
http://fast-uploader.com/file/7050419469159/

本当に困っているので、教えて頂けると助かります
207デフォルトの名無しさん
垢版 |
2017/05/16(火) 11:27:54.26ID:z70mDz+n
pyhonファイルも使えると聞いたのですが、やり方はどうすれば良いのでしょうか?
調べてもmacやubuntuしかでて来ませんでした。
OSはlinux mintです
208デフォルトの名無しさん
垢版 |
2017/05/16(火) 11:45:34.03ID:z70mDz+n
using System;
using System.Windows.Forms;

public Sample(a,b)
{
Console.Write(a);
MessageBox.Show(b);
}

Sanmple呼び出し
↑↑↑
を最後に埋め込み
209デフォルトの名無しさん
垢版 |
2017/05/16(火) 13:52:34.17ID:z70mDz+n
何とかなりませんかね?
210デフォルトの名無しさん
垢版 |
2017/05/16(火) 15:06:12.06ID:2YPoPkpm
先生、sqlbulkcopyでdatatableをDB(sqlserver)に入れたいのですが、datatable内の1カラムにgetdate()を設定することは可能でしょうか?
211デフォルトの名無しさん
垢版 |
2017/05/16(火) 15:09:53.48ID:z70mDz+n
はい、可能です
212デフォルトの名無しさん
垢版 |
2017/05/16(火) 15:13:05.65ID:2YPoPkpm
>>211
マジですか!調べてみても分からなかったので出来れば設定方法をご教授願います
2017/05/16(火) 15:29:06.61ID:gO5Fs5vN
>>211
お前いろんなスレで死ねって言われてるけどまだ死んでないの
雪風がどうたら
2017/05/16(火) 16:28:20.08ID:xTLK6q+8
>>205
nlogのようなロギングライブラリ使うのが一般的じゃないかな
概要や使い方はぐぐってね
2017/05/16(火) 18:47:27.26ID:/hvrKFRI
>>210
sqlserverならコピー先のテーブルの既定値にgetdate()設定しておけばいいんじゃないの
少なくともDataTableのExpressionじゃ目当ての処理はできないと思う
216雪風
垢版 |
2017/05/16(火) 19:14:17.44ID:z70mDz+n
死ねなんて、言われた事ないな
2017/05/16(火) 19:45:42.17ID:JgOfy+oS
>>205
エラーとはなんですか?
まずエラーとは何か定義しなければ話は進みませんよ
2017/05/16(火) 21:13:16.85ID:0XQXtOGz
例外と思っていいんじゃね多分
219デフォルトの名無しさん
垢版 |
2017/05/16(火) 21:36:37.56ID:fxDdBjd8
>>205です
>>208>>217>>218
ありがとうございます

イメージとしては、各クラスで起こった例外をcatchしたときコールバック出来るデリゲートを準備して、それぞれのクラスのコンストラクタにformで定義したメソッドを渡してやるといった感じなのですが、一般的にどういったやり方をするもんなのかと思いまして
MessageBox.Show()を実行させるので、エラー発生時の処理を全てform内に記述するのが普通なんですかね?
2017/05/16(火) 21:46:34.93ID:fjoeC8EN
>>219
クラスを同時実行しないのならForm内にエラー処理メソッド作って
・エラーが起きたときに各クラスからそのメソッドを呼び出す
・クラス終了時にエラーを示す返値を出してFormで判断する
普通とか存在しないからその他好きに作ればいいよ
クラス同時実行するのならちょっと面倒になるけど
MessageBox.Show()を使うよりFormにRichTextBoxかLabelで表示したほうが分かりやすいと思うけど
2017/05/16(火) 21:55:35.21ID:64KrDfHK
>>219
例外はなるべく呼び出し階層の上の方でキャッチするのが基本
フォームアプリならそれはすなわちイベントハンドラになる
ヘタに奥の方でキャッチして握り潰すよりずっといい
その代わり、どこで例外が発生して処理か打ち切られてもリソースのリークなどの問題が起きないように
常に例外安全なコーディングをすること
2017/05/16(火) 21:55:53.25ID:kR+Ii8XK
エラーを記録する事に情熱を燃やすよりもエラーを出さないコードを書く事に集中する方がいいと思う。
2017/05/16(火) 22:10:05.09ID:fxabLeuL
エラーを出さないようにするにはエラーを記録することが役に立つから情熱をかけてもいい
2017/05/16(火) 22:17:01.95ID:VGECTk9b
それを例外の握り潰しという
225デフォルトの名無しさん
垢版 |
2017/05/16(火) 22:22:33.82ID:Ag35s8j3
コンパイラをframeworkで標準装備って、ウイルス的に良くないと思うのだけど?
2017/05/16(火) 22:31:35.05ID:AGzM1pll
>>219
よく分からんけど、個々の例外ハンドラーでいちいちメッセージの表示とログの処理を書くのが面倒だってことなら
こんなのはどうかね。
もちろん、まったく一般的でも何でもないはずだけどw


(1) すでに適切に処理された例外を表すHandledExceptionを定義

(2) 個々の例外ハンドラーではキャッチした例外をHandledExceptionのInnerExceptionに
入れてHandledExceptionをスロー

(3) 集約例外ハンドラーを使ってHandledExceptionのInnerExceptionを使って
メッセージの表示とログを行う

集約例外ハンドラーって俺はあんまり使ったことないけどこういうやつ
http://www.atmarkit.co.jp/ait/articles/0507/01/news134.html
2017/05/16(火) 22:35:00.50ID:AGzM1pll
だだこんな作り方されると後で他で再利用しずらいねw
2017/05/16(火) 22:37:25.86ID:zhIbn0v9
エラー処理は置いといて、
自分はログや経過表示にはログクラスを作って各クラスにインスタンスを渡してるな
2017/05/16(火) 22:41:10.27ID:VGECTk9b
例外はキャッチされようがされまいがメソッドを抜けた時点で必ず後片付けが完了しているのが正しい
極端な話、全部UnhandledExceptionで処理しても問題ないはず
230デフォルトの名無しさん
垢版 |
2017/05/16(火) 22:54:27.55ID:4vSkrFsf
下のコードで、var fuga からインデックス等で最初の要素を指定して
データを取得したいのですが、どのように書けば行けるでしょうか?

class Hoge
{
public int hoge { get; set; }
}

static void Main(string[] args)
{
List<Hoge> hogehoge = new List<Hoge>();
hogehoge.Add(new Hoge { hoge = 1 });
var fuga = hogehoge.Where(e => e.hoge==1);
int hogege = fuga[0].hoge; //インデックス等で最初の要素だけ取得したい
}
2017/05/16(火) 22:56:54.77ID:0Zcpca0B
fuga.ToArray()[0] or fuga.ToList()[0]
232デフォルトの名無しさん
垢版 |
2017/05/16(火) 23:02:22.98ID:iUpJkWmO
>>205です
皆さんありがとうございます
すごく参考になるレス頂けてとても助かりました
指摘頂いたことを参考に頑張ってみます
またわからないことあったら質問させてください
2017/05/16(火) 23:12:13.60ID:5HaY8++G
>>230
インデックスで任意の要素を、ではなく、最初の要素固定なら
fuga.First()
でもいける
2017/05/16(火) 23:15:05.18ID:5HaY8++G
Skip()使えば途中の要素もいけるか
235230
垢版 |
2017/05/17(水) 00:17:28.91ID:F4n193dh
fuga.First()がまさに求めていたものでした
fuga.ToList()というやり方も、非常に参考になります。

ありがとうございました。
2017/05/17(水) 01:29:46.60ID:4KwX7I2m
>>235
fuga.ToList()の方は一旦条件に該当するもの全部の配列を作るから、First()を使うのと比べて無駄がある。
さらに言うなら、この場合はWhere()も必要無くて、hogehoge.First( e => e.hoge ==1 )で良い。
237デフォルトの名無しさん
垢版 |
2017/05/17(水) 08:36:02.32ID:oIZq9+Td
>>215
ありがとうございます。
私もその結論に至りました。
238デフォルトの名無しさん
垢版 |
2017/05/18(木) 04:30:00.50ID:plBfXEwH
.netとapi絡みですがいいですか?
GetPrivateProfileStringですがどうやっても30000文字くらいまでしか読めません…
2000以降のOSだと読み込みの文字数制限無いって書いてるのに… なんででしょうか?
ちなみにC++から普通に全然読み込めました。
2017/05/18(木) 04:31:21.77ID:plBfXEwH
宣言はこんなかんじです。
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section,
string key, string def, StringBuilder retString,
int size, string path);
2017/05/18(木) 05:04:07.60ID:QqtQwXyU
実際にはGetPrivateProfileStringAが呼び出されてるとか
2017/05/18(木) 05:13:30.48ID:plBfXEwH
>>240
仮にそうだとして回避する事って出来るんですかね?
2017/05/18(木) 05:20:15.27ID:plBfXEwH
こうやってみたけどダメでした… 無理かな…
[DllImport("Kernel32.dll", CharSet=CharSet.Unicode, EntryPoint="GetPrivateProfileStringW")]
2017/05/18(木) 05:51:43.24ID:3q2usjgF
無理かどうか以前にGetPrivateProfileStringで30000文字読み込むなんていう仕様がおかしい気が・・・
2017/05/18(木) 05:53:36.76ID:plBfXEwH
>>243
マニュアルには2000以降は制限なしって書いてるのに制限かかるのが不可解で…
2017/05/18(木) 06:21:12.42ID:3q2usjgF
どこにそう書いてあるのか知らないけど自分の環境で試してみたら60000文字以上でも読めたよ
2017/05/18(木) 06:22:38.85ID:plBfXEwH
>>245
え〜そのコードおしえてください!
2017/05/18(木) 06:37:59.18ID:3q2usjgF
sizeにバイト数ではなく文字数を渡しているとか?
2017/05/18(木) 06:49:20.83ID:plBfXEwH
>>247
それでした…orz
半日悩んだ結果がこれ…orz
2017/05/18(木) 06:56:20.37ID:plBfXEwH
>>247
いやそういう事でもやっぱないような…
これでいいんですよね??
StringBuilder temp = new StringBuilder(99999999);
GetPrivateProfileString(Section, Key, "", temp, 99999999, path);
2017/05/18(木) 07:15:48.86ID:3q2usjgF
バッファの終端はNULL文字になるからそれだと99999998バイトまでしか読めないみたいよ
MSDNにその辺りのことが書いてある
99999999が仕様なら仕方ないけど、そうでないなら長さはちゃんと決めないとトラブルの元になるよ
2017/05/18(木) 07:26:40.34ID:plBfXEwH
>>250
というかよくわからないのが
WritePrivateProfileString()は最初の一回は30000文字以上でも書き込めるけど
2回目に試しに上書きしてみようとしてもうまくできないんですよね…
""空文字を設定してもダメみたいで…
一旦30000文字以上を書き込むと上書きも出来なくなります。
これReadPrivateProfileString()が読み込めないのと何か関係してるのかな…
意味が分からない…
2017/05/18(木) 07:39:10.95ID:3q2usjgF
フラッシュしても駄目?
2017/05/18(木) 07:39:21.49ID:bq0WS2qT
INIファイルはWin16の頃の遺物だからそんなでかい文字列を扱ってトラブルになるのも仕方ないと思う
ってかMSDN見ても30000文字以上扱えるという記述ないけど
2017/05/18(木) 08:00:42.55ID:plBfXEwH
>>252-253
https://msdn.microsoft.com/ja-jp/library/cc429770.aspx

これと勘違いしてた…
でもこれがいけるならGetPrivateProfileStringもいけないの?
2017/05/18(木) 08:26:32.47ID:plBfXEwH
>>253
今VC++からも読み込んでみたんですがどうやら勘違いでした。
31487文字までしかどうやっても読み込めませんでした。
GetPrivateProfileString()自体にやっぱ制限があるようです。
2017/05/18(木) 08:27:25.66ID:Za5q7uI4
なんでそんな限界に挑戦したいの?
どんな環境でも動くようにしたくないのか?
2017/05/18(木) 08:43:47.28ID:0yP1j9dj
iniファイル使わざるを得ない事情があるんだろうけどそれならAPIより.NETライブラリ探したほうがいいんじゃないの
2017/05/18(木) 08:48:31.58ID:plBfXEwH
>>256
古いアプリのファイルを読み込みたくて
>>257
何かよいソースないかさがしてみます。
最悪自力で読み込もうと思います。
2017/05/18(木) 09:01:56.00ID:bq0WS2qT
>>258
ソースから探さなくてもnugetでiniパーサー見つかるでしょ
2017/05/18(木) 10:22:47.93ID:bBEBMsWX
iniファイルなんて自分で読み書き出来るだろ
2017/05/18(木) 10:29:06.99ID:plBfXEwH
>>259
なるほど。
>>260
そうですよね。
2017/05/18(木) 18:13:55.78ID:kDiQJ8Uz
ビットフィールドないのけ?
あと固定長も

unsafeなんか入れたくないけど結構使うもん?
gchandleとmarshalでsafeにやった方がいいのかunsafe使いまくっても全然問題ないのか
みなさんの方針を教えてください
2017/05/18(木) 18:17:39.04ID:OCXcI4ec
>>262
32ビット固定とかなら好きに使えよ
marshalはよく使うがunsafe使う必要に迫られたことないな
2017/05/18(木) 19:01:17.54ID:nGaj6J50
>>262
BufferでもBitArrayでもBitVector32でも好きに使えや
2017/05/18(木) 19:28:28.05ID:POnkIYdd
クロージャだの非同期タスクだの高レベルなことは各言語記述性高まってるけど、
エンディアン指定してビット長さ指定してビットフィールドとか
そういう低レベルなことを簡単に記述できる方向の進歩って少ないよね…

30年前と同じにシフトしてマスクして足すという
2017/05/18(木) 20:08:12.45ID:Zif2rhHO
>>255
Windows NT 4 の頃に WritePrivateProfileString( ) をガンガン使ってたらたまに戻ってこないことがあったので、マイクロソフトにインシデント使って問い合わせたらすったもんだの末に「仕様です」って言われた w
もうその頃から捨てたがってるのがありありだったわ
2017/05/18(木) 20:26:56.52ID:kDiQJ8Uz
>>263-4
32ビット境界になってればいいけど…
そこまでまだ見てないけど多分なってないんだよなぁ
取り敢えずその辺当たってみるわありがとさん!
2017/05/18(木) 21:23:53.78ID:bBEBMsWX
>>266
ガンガンって一秒当たり1000回くらいコールしたの?
2017/05/18(木) 22:11:18.52ID:anTKPcsr
>>265
高レベル低レベルっていうより需要とか汎用性の問題だと思いますが
2017/05/18(木) 22:40:26.48ID:K0KmS8r5
>>268
最大数十回程度だったと思う
ただ24時間運用の機器だったから再現テストがめちゃ大変だった
最後は自前で読み書きを実装した
2017/05/18(木) 23:10:55.63ID:anTKPcsr
>>270
iniに記録する類の情報なんかアプリ終了時の保存しようよそもそもw
いきなり電源落ちたら困る?
そういうのはハード(UPSとか)で対応しなきゃw
2017/05/19(金) 09:25:16.90ID:v7TM541h
下記のような処理をスマートに書くとどうなるでしょうか
for (int i = 0; i< 100; i++){
if (i< 50){
for (int j = 0; j< 20; j++){
if (j< 10){
hoge[idx] = 1;
}else{
hoge[idx] = 2;
}

idx++;
}
}else{
for (int j = 0; j< 20; j++){
if (j< 10){
hoge[idx] = 3;
}else{
hoge[idx] = 4;
}

idx++;
}
}
}
2017/05/19(金) 09:49:36.16ID:K2XF16mV
>>272
その前に質問をスマートに書き込む技術を身に付けるのがいいぞ
2017/05/19(金) 10:06:13.31ID:7kp/CVMp
痩せろデブ
2017/05/19(金) 10:06:42.03ID:EmkjUD+o
>>272
const int COUNT = 2000;
int idx = 0;
int[] hoge = new int[COUNT];
var tmp = Enumerable.Range(idx, COUNT).Select(x => x / 10 % 2 + x / 1000 * 2 + 1).ToArray();
Array.Copy(tmp, 0, hoge, idx, COUNT);
idx += COUNT;
2017/05/19(金) 10:14:56.08ID:+DeJpQeQ
>>272
lengthとかcountなりプロパティ使えや
2017/05/19(金) 10:50:07.32ID:4KQhVkeZ
>>272
定数どうにかするべき
2017/05/19(金) 11:06:00.52ID:L+aVTlDX
ListでAddして行って後からToArrayにするのどうよ
2017/05/19(金) 12:43:58.87ID:prKcdFJm
>>272
こんな感じ?
aはない方がいいかも

Action<int> a = (x) =>
{
  hoge[idx] = x;
  idx++;
};

Action<int, int> a2 = (first, second) =>
{
  for (int i = 0; i < 10; i++) a(first);
  for (int i = 0; i < 10; i++) a(second);
};

for (int i = 0; i < 50; i++) a2(1, 2);
for (int i = 0; i < 50; i++) a2(3, 4);
2017/05/19(金) 12:48:21.02ID:prKcdFJm
Action<int> a = (x) => hoge[idx++] = x;
で良かったねw
2017/05/19(金) 13:01:35.38ID:cfgUfLYa
>>279
何やってるのかわかりにくい
2017/05/19(金) 13:09:48.87ID:cfgUfLYa
そんなテトリスを十行で書いたから偉いみたいな厨房コードより
一番はじめのコードで定数を意味のわかる形にするだけでええと思うで
デバッガでも追いやすいと思うし
1行にありったけ詰め込んじゃうとバグったときに追いにくいし仕様書のどこがどのコードと一致してるかもわかりにくい
2017/05/19(金) 13:14:54.18ID:prKcdFJm
言っちゃ悪いけど、この程度のコードが分かりづらいと思うなら
プログラマなんかやめた方がいいよw

>>279みたいな書き方をする目的は行数を減らすことじゃない。

>>272のコードにある重複部分を一つにまとめるとともに、2重ループで構成される
スパゲッティーな構造を平坦化して見通しを良くすること
2017/05/19(金) 13:19:11.93ID:cfgUfLYa
>>283
俺は少しでも読みにくいと思うなら誰でも読めるコードに倒す派
程度問題になるなら簡単な表現にするよ
何より仕様書に書けない
お前そのラムダ式仕様書でどうやって表現するの?
2017/05/19(金) 13:22:52.04ID:prKcdFJm
言っても無駄なタイプだと思うけど、まともなプログラマなら
>>279の方が>>272より何倍も読みやすいと感じるはずだと思うよ。

>>279が読みづらいと思うなら、それは端的に君の能力不足ですw
悪いけどね

まあ、「マジックナンバーガー」なんて本質と無関係のことを吠えてるレベルの人には
分からないかもしれん。
2017/05/19(金) 13:26:48.87ID:cfgUfLYa
>>285
それは何人のプログラマにアンケートをとったの?
設計を語る割にはあんまりレビュー慣れしてないね
お前が不勉強だから俺のコードがわからないんだって解説が会社で通っているならまあそれがお前の不幸なんだろうな
2017/05/19(金) 13:29:09.30ID:q5L+N4LV
>まともなプログラマ
ゲラゲラ
2017/05/19(金) 13:37:02.35ID:Nsgvzc4K
俺はLinq使ってるコードの方がはるかに見やすいと思う
2017/05/19(金) 13:40:46.21ID:cfgUfLYa
>>288
設計書の内容と一致できる?
2017/05/19(金) 13:42:16.23ID:wsjFAOP3
読める人が3人以上いれば使って良し
その場合、読めない奴は今後雑魚コーダーとして扱効果査定で技術力マイナス査定
俺らも遊びじゃないからね
何でもかんでも下に合わせるのはジャップランド運動会みたいで悪しき風習だ
2017/05/19(金) 13:42:58.11ID:9Xnft4qI
初心者の質問スレってわからない大先生がまた出てきたよ
2017/05/19(金) 13:43:46.41ID:Nsgvzc4K
>>289
設計書どれ?
2017/05/19(金) 13:46:06.68ID:XSlpA42c
Linq使うなとかvar使うなとかウザイ先生が定期的に湧くね
2017/05/19(金) 13:46:42.22ID:cfgUfLYa
>>292
じゃあ、設計書無いのにソースだけ見ていいって言ってるわけだ

俺らの仕事は設計書を書いた段階で95%は終ってなきゃいけないよね
いいソースってのは設計書の内容をソースに反映できていることであって
ソースの見てくれがいいことじゃないよ
2017/05/19(金) 13:47:34.14ID:04gwXQVt
何言ってんだこいつ
2017/05/19(金) 13:55:45.76ID:wsjFAOP3
設計書をコードに齟齬なく反映可能
だとすればその設計書はもはや設計書ではなくコードである
コードに置き換えるという無駄な行程を無くしてコンパイラに仕事をさせればよい

設計書をコードに齟齬なく反映不可能
だとすれば設計書至上論者の言ってることはハナから間違いとなる
反映不可能なのに反映したものが良いとはおかしな話だ
反映不可能なら書いたコードが設計書を正しく反映していると何をもって言えるのだろうか

結論
設計書至上主義者は現実が見えていないバカ
2017/05/19(金) 14:01:48.82ID:a+VoRKlA
設計書は「誰の為に」「何の為に」あるのか理解してる?
まさかプログラマの為に作られてるとでも思ってるの?
2017/05/19(金) 14:02:58.29ID:cfgUfLYa
>>296
だから設計書書きたく無いって?w
情シスはいつになっても馬鹿だなw
2017/05/19(金) 14:05:06.67ID:HtTOLHjM
>結論
ゲラゲラ
2017/05/19(金) 14:35:25.16ID:XSlpA42c
今回の命題はコードを簡単にするにはどんなやり方がありますか?
ってことなのにありもしない設計書ベースにコードを簡単にすべきではないと主張するとか完全に馬鹿だろw
2017/05/19(金) 14:37:01.65ID:cfgUfLYa
>>300
簡単?
スマート(?)だろ?
2017/05/19(金) 14:42:01.05ID:UT6RIjCf
よくわからんから具体例で議論してほしい
どういう設計書なら>>279がだめなの?
ここ初心者スレだから初心者にもわかるようにやってくれ
2017/05/19(金) 14:42:02.36ID:XSlpA42c
>>301
>>300の「簡単」を「スマート」に置換しても主旨は全然変わらないからそれでいいよ
2017/05/19(金) 14:55:55.08ID:CjiiFotr
>>300
これに尽きる
2017/05/19(金) 15:23:33.91ID:wsjFAOP3
設計書文化の頭の悪さが露呈した形になるな
2017/05/19(金) 15:32:26.04ID:cfgUfLYa
>>302
ううんそれは本質じゃないよ
設計書もないのにソースの良し悪しを判断しようとしてるのが不味い
2017/05/19(金) 15:41:42.49ID:gmSWrJbX
また底辺プログラマくんが来てスレが荒れてるねw
一生拝承システムでも作ってろ
2017/05/19(金) 16:15:41.26ID:CDMysSsn
底辺かどうか知らんけど、ラムダ式をトリッキーでも何でもない
ごく普通の使い方しただけで上から目線で「わかりにくい」とか勘弁してほしいねw

>>279はラムダ式を使ってるだけで、考え方自体は普通の構造化プログラミングの方法論通り
共通部分を括り出して分割統治しただけ。

でも構造化プログラミングの段階で躓いてる人って実際割といるよね。
前の職場にも一つのメソッドに全部のロジックを詰め込んでダラダラ書く方が
分かりやすいと思い込んでる人がいて困った
2017/05/19(金) 16:26:40.59ID:dgLRkGLJ
バカが書いた凝ったコードこそが悪夢だからね
コボラーをPGとして使わなきゃいけないなら全部フラットに書くのは実際無難な方法ではある
ウォーターフローが守られてる限りは問題なくスケールするし
2017/05/19(金) 16:34:13.39ID:4KQhVkeZ
>>308
狙ってやってるのか不具合なのかわかりにくいな
普通にif文で条件判定入れてくれると読みやすいんだけど
まあ、それは設計書になんて書いてあるかだけどね
2017/05/19(金) 16:44:34.52ID:CDMysSsn
>>310
単純に1ずつ増えるループ変数iがXを超えたかどうか(i>X)みたいなのは
条件判断なんて言わない。

I == Xになるまではiは絶対にX未満、一度Xを超えたらその後は絶対にi>Xに決まってるんだから、
普通に考えてただの無駄、それが言い過ぎなら仕方のない妥協の産物だ。

こういうコードを見て無駄でエレガントでないと感じないならプログラマ向いてないよマジで
2017/05/19(金) 16:58:16.77ID:4KQhVkeZ
>>311
ううんそれは元のコードが仕様通りだったらの話
範囲で入る値が異なるコードを書くなら明示的にif文で条件判定を書いて欲しいんだよね
だからラムダのコードの方は俺には偶然によっかかって辛うじて成り立ってるコードに見えちゃう
2017/05/19(金) 17:19:07.19ID:CDMysSsn
何のこっちゃ
要求されているのは機能的に等価でよりスマートなコード以上でも以下でもないでしょ

YAGNIじゃないけど、こんなところで無限にありうる仕様変更の可能性に対して
備えてないからダメなんてただの言い掛かりでしかない
2017/05/19(金) 17:57:50.30ID:pkYYdS/8
ちなみに272氏は単純にこう書こうとは思わんかったん?
for (int i = 0; i< 100; i++){
if (i<**) hoge[i]=1;
if (i>=** && i<**) hoge[i]=2;

if (i>**) hoge[i]=4;
}
2017/05/19(金) 18:20:26.57ID:4KQhVkeZ
>>313
違うよ
お前のコードは不具合にしか見えねーって言ってるの
2017/05/19(金) 18:27:07.86ID:CDMysSsn
>>315
具体的にどうぞ
まあ無理しなくていいよ
2017/05/19(金) 18:28:57.76ID:ZLeUzX79
linqクソ遅いやん
for文の方が何倍か速いよね確か
2017/05/19(金) 18:30:03.38ID:WWLbWYv7
100倍だぞ100倍って主張が昔あったような…
2017/05/19(金) 18:31:48.04ID:CDMysSsn
っていうかさあ、ループ変数が単純に増減するループの中で
ループ変数を定数と比較してるコードを見たら、なんだか気持ち悪いとか何か間違ってると
感じるのが普通だけど、>>312みたいに逆にそうでないとしっくりこないって感じる人間もいるんだから
世の中いろいろだね
2017/05/19(金) 18:52:01.40ID:kYbu8TAD
添字アクセスはバグの温床だからforはなるべく使わない派だわ
2017/05/19(金) 18:58:05.71ID:rvoNT6Cb
そだね
2017/05/19(金) 21:06:53.85ID:luDd5jKl
using ( var stream = new MemoryStream( hoge ) )
{
for ( int i = 0; i < 50; i++ )
{
for ( int j = 0; j < 10; j++ )
{
stream.WriteByte( 1 );
}

for ( int j = 0; j < 10; j++ )
{
stream.WriteByte( 2 );
}
}

for ( int i = 0; i < 50; i++ )
{
for ( int j = 0; j < 10; j++ )
{
stream.WriteByte( 3 );
}

for ( int j = 0; j < 10; j++ )
{
stream.WriteByte( 4 );
}
}

idx = ( int )stream.Position;
}
2017/05/19(金) 21:22:07.20ID:PUsZCclE
教えてください
ディスクトップの特定の場所の色が変わったらAを実行するというコードを書きたいのですが
どの様に書けばよいのでしょうか?
よろしくお願いします
2017/05/19(金) 21:25:59.99ID:V49AdHLO
>>323
それは画面キャプチャが必要でそれだけでも一筋縄じゃできないような
タイマで監視するにしてもコスト大きすぎるし
他の条件は無いのか?
2017/05/19(金) 21:33:43.42ID:PUsZCclE
>>324
ありがとうございます

アプリから通知が来た時に右下に通知の吹出が出るので
その時にAというプログラムを実行したいと考えているのですが難しそうですね
2017/05/19(金) 21:39:37.11ID:wsjFAOP3
通知にフックすればいいじゃん
2017/05/19(金) 21:48:19.14ID:MbXyDkjN
>>323
ディスクトップwww
2017/05/19(金) 22:02:05.77ID:9om5PS5P
>>271
設定とかを書いてる訳じゃないよ
詳しくは書けないけど要するに WritePrivateProfileString なんて使うのがバカって言う結論
装置制御用のPCだからUPSはもちろんハングアップしたら外部のハードウェアで電源Off/Onまでやるようになってる
2017/05/19(金) 23:45:52.56ID:HvrNab0E
>>320
じゃあforeachで
2017/05/19(金) 23:47:34.46ID:HvrNab0E
>>323
指定した座標のカラーを取れば良い
2017/05/19(金) 23:53:05.65ID:luDd5jKl
通知ウィンドウ(?)をSpy++とかで調べておいて、そのウィンドウが出てるかポーリングするとか。
2017/05/20(土) 01:29:25.58ID:HfZ9LPLj
>>325
色はダメ

別のアプリの通知がでて同じ色の吹き出しが出たらどう区別すんの?
2017/05/20(土) 10:07:05.79ID:TjL8/DAP
うんこマーク付けとけうんこマーク
2017/05/20(土) 16:56:47.34ID:LUvMfIz7
>>272の質問の人何も言わずにとんずらしちゃったけど、
ひょっとしてラムダ式が分かりづらいって文句言ってたのが質問者本人だったのかなw
2017/05/20(土) 17:17:57.91ID:s6GG1k5+
>>306
まさにお前が言うな
2017/05/20(土) 17:42:51.92ID:Lw3rlvDI
C#スレこんな低レベルだったっけ
2017/05/20(土) 17:51:55.39ID:H5zsVvWC
初心者だからみんな低レベルだよ
2017/05/20(土) 17:58:30.08ID:TjL8/DAP
>>334
初心者にもわかりやすいコードがいいね
2017/05/20(土) 18:07:46.65ID:okSFnVvW
>>334
コードをスマートに書き換えて、ってそもそも質問じゃないじゃん
ネタ振ってスレの様子見て遊んでいる人が混ざっているのだからいつまでも構わないでくれ
2017/05/20(土) 18:36:04.13ID:TjL8/DAP
まあ、初心者に的確な判断を要求するのも酷だな
341323
垢版 |
2017/05/20(土) 18:52:37.15ID:eWsnLc5H
>>327
し、初心者なので許してくださいww

>>330
なるほど〜その線でしらべてみます
…って思ったけどさっぱりわかりませんorz何処か誘導お願いします

>>332
大丈夫です。
ほかのアプリは黄色い色の通知はしないのでいけると思います
2017/05/20(土) 20:24:06.43ID:Tc+UN3QZ
>>339
もっと綺麗に書けそうに思うけど自分ではどうしたらいいか分からない、
っていうのも立派な質問だしスレの趣旨に反していると思えない
343324
垢版 |
2017/05/20(土) 20:29:39.57ID:kVhEQFVq
>>341
その通知を出すアプリが何かわかればアドバイスできる人もいるかもしれない
色は問題ありすぎだから忘れろw
今のところ>>326が一番適切な回答だと思う
2017/05/20(土) 20:29:47.52ID:o8jDeEud
>>341
デスクトップをキャプチャしてイメージにする。その特定の座標の色を取得する。

まずはそこから
2017/05/20(土) 20:31:11.74ID:o8jDeEud
次に上に書いてあるようの、デスクトップの画面更新をフックする。

WM_PAINTとかかな
2017/05/20(土) 20:55:22.87ID:RDFlCbPz
色はダメだってw
OSがアップデートしたりソフトの使用が変わったら何の意味もない

もしそのアプリがc#と絡んでるならそっちをいじれ
2017/05/20(土) 21:05:00.27ID:U9rYpiRi
通知のフックって具体的にはどうやるの。
アプリの中身知らなくても出来るもん?
2017/05/20(土) 21:06:58.07ID:U9rYpiRi
デスクトップの色解析はスジが悪いよな。
たまたま似たような画面が重なったら誤動作するし。
2017/05/20(土) 21:27:00.53ID:j00pzvC8
Deepラーニングで誤動作回避ですよ
350323
垢版 |
2017/05/20(土) 21:38:51.77ID:eWsnLc5H
>>343
MultiChartsというチャートソフトなんですけど、通知をフックすると言うことは…ネイティブコードの解析が必要?
それが出来れば最高なんですけど私のスキルでそこまで出来ません

他に何も入っていない専用PCなので仕様はほとんど変わらないので
とりあえずスジが悪いかも知れませんが>>344さんの方法で調べてみます
2017/05/20(土) 21:45:16.85ID:NJbCjS/c
>>331の方針の方がはるかにいいぞ
2017/05/21(日) 00:34:18.82ID:05HcF/fB
フックするってどうゆう意味だってばよ??
2017/05/21(日) 00:40:20.10ID:99kOcSi/
>>352
SetWindowsHookEx
2017/05/21(日) 01:25:55.95ID:YXecPC33
オープンソースで公開するってんならOSやソフトの仕様を考慮する必要があるけど、
全くの個人使用なら色で判断するってのはそう悪いアプローチでもないと思う

autohotkeyとかでできそうだけど
2017/05/21(日) 02:12:38.30ID:05HcF/fB
複数valueを登録できるdictionaryはありますか?
2017/05/21(日) 02:16:03.09ID:qWUTGHFA
Dictionary<T0, Tupple<T1,T2 ・・・>>
2017/05/21(日) 02:19:36.59ID:qWUTGHFA
TuppleじゃなくてTupleだった失礼
2017/05/21(日) 03:21:47.56ID:+4cTOAW1
Lookup
2017/05/21(日) 12:44:06.39ID:05HcF/fB
>>356
tupleを活用する事で可能なんですね。
ありがとう、試してみます。
2017/05/21(日) 13:01:14.66ID:JJ83HkpI
タプルをコレクションに入れるのはバグの温床
dynamicに匿名型突っ込む方がまだマシ
2017/05/21(日) 13:18:52.22ID:01kZhcWn
>>360
どんなバグが出るんですか?
2017/05/21(日) 14:51:50.29ID:jNq5R9xb
妙な小細工するより素直に複数の値の入れ物の型を定義した方が
分かりやすく使いやすいと思うけど
2017/05/21(日) 15:27:42.93ID:tsOaukBL
個人的には普通に格納用クラス作ったほうがいいと思うけどね
2017/05/21(日) 17:07:27.54ID:JJ83HkpI
>>361
要素を取り違えるバグだね
入れてるところまで遡らないと何番目の要素が何を意味するのか分からない
個人的には、タプルは即座に要素をバラして変数に展開するべきで
タプル型の変数やコレクションは決して使ってはいけない
2017/05/21(日) 17:32:54.07ID:bjY9GTUB
ごく短期間なスコープでならタプルも便利だけどね
2017/05/21(日) 17:35:37.21ID:mFXnnnZ/
タプルを単一の値としてコレクションや変数に入れたことによる要素の取り違えに起因するバグはPythonだとよくある
C#7.0のタプルはその問題点を考慮して要素にラベルを付けられるようになってるね
2017/05/21(日) 18:46:01.80ID:eq83iLnZ
絶滅危惧種だとは思うけど、コードレベルの設計書が必要な人達って未だいるんだね (´・ω・`)
2017/05/21(日) 19:01:05.84ID:JJ83HkpI
普通にいるだろ
ていうかそういう奴はどれだけ詳細なコード設計を渡してもそれだけではコード書けなくて、
必ず類似したプログラムをサンプルとして渡してコピペさせてやる必要がある
2017/05/21(日) 19:09:16.32ID:8zMWeNzv
横着しないでマシな人を雇った方がいいですよ…
370デフォルトの名無しさん
垢版 |
2017/05/21(日) 19:12:49.79ID:/dC0YVGz
新米ってどこにでも居るけどな
2017/05/21(日) 19:13:25.76ID:iRCfL5dm
>>367
こう言う時ってどうしてる?
自分でコード書くのが正解なんだろうけど下流の仕事奪うとそれはそれで面倒な展開になる
372デフォルトの名無しさん
垢版 |
2017/05/21(日) 19:16:10.49ID:/dC0YVGz
仕様教えてテスト計画書作成してもらう
2017/05/21(日) 19:24:32.38ID:mFXnnnZ/
>>370
新米なら教えてやろうという気にもなるけど、それがベテランコボラーだったりするんだよな
2017/05/21(日) 19:29:36.65ID:05HcF/fB
コードレビューって険悪な雰囲気になりませんか?
2017/05/21(日) 21:41:22.20ID:lJj1Wn7F
>>374
仕様を満たしてるかどうかと規約に違反してないかだけだろう
あとごくたまにどっかから拾ってきたオープンソースだとかどう見ても怪しいライブラリとか勝手に使おうとするアフォな人がいる
だいたい調べるとGPLとかGNUとかだったりする
オープンソースじゃねぇって言ってるだろwと
文化がわからないな
2017/05/21(日) 21:44:33.64ID:QuEQrH88
>>375
それを、「レビュー」するの?
そんなのレビュー以前の話だと思うけど
2017/05/21(日) 21:51:26.71ID:lJj1Wn7F
>>376
うーんでも見張ってないと入れるんだこれが
逆にどこでチェックするの?
378324
垢版 |
2017/05/21(日) 21:52:59.76ID:w3qiO5bj
マ板でやれよ。業界談義をここでやるな
379デフォルトの名無しさん
垢版 |
2017/05/21(日) 21:57:45.31ID:Oz98oGI1
async/awaitですが、.NET FW4.0でも使えるみたいなのですが、使い方的に何か違いがあるのでしょうか。また使うにはどうしたらいいのでしょうか。
2017/05/21(日) 22:00:04.23ID:01kZhcWn
>>379
君は何がしたいん?
2017/05/21(日) 22:02:21.29ID:8VZiX6Z0
言語と.netは違います。
.net4でC#5を使うことは可能です。
何ら問題もないです。
使用するクラスが.net4で使えるかどうかを気を付けませう。
2017/05/21(日) 22:12:23.12ID:yzY+yVHd
>>379
nugetでMicrosoft Async(Microsoft.Bcl.Async)をインストールする。
.Net4.5以降でTaskクラスにある一部のメソッドがTaskExクラスにあるらしい。
2017/05/21(日) 22:17:05.82ID:lJj1Wn7F
>>378
いいや、ここがちょうどいいと思う
ちょっと前にLivetとかPrismとか勝手に使われて
品証からストップされて納期前に大変な事になった
初心者スレでこそ警笛を鳴らしたい
勝手に使わないでね
こういうの大抵駄目だから
2017/05/21(日) 22:22:11.46ID:bjY9GTUB
>>383
>>1を読め
これ以上のスレチは荒らしだぞ

>「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
>他のスレッドでは書き込めないような低レベルな質問、
>質問者自身なんだか意味がよく分からない質問、
>ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
2017/05/21(日) 22:25:21.88ID:iRCfL5dm
>>377
そんなもん自動化しろよ
人間はもっとクリエイティブな仕事をしないと金もらえないよ
2017/05/21(日) 22:28:27.09ID:sSTv/YxK
>>383
Prismの何がだめなの?
387デフォルトの名無しさん
垢版 |
2017/05/21(日) 22:31:32.33ID:Oz98oGI1
>>380-382
ありがとうございます
>>380
.NET4でシンプルな非同期処理やりたいだけです
>>382
それを確かどこかで見かけました
使用するにあたって特に問題ないのですね
試してみます
2017/05/21(日) 22:46:05.61ID:lJj1Wn7F
>>386
品証は駄目って判断したねぇ

なんでもこれ使ってるってどっかに使ってるって記述しないといけなくてお客さんのアプリだから駄目って結論になったらしい
まあ、こういうの大抵駄目だから今更驚かんが
2017/05/21(日) 22:48:32.01ID:C57KKbG4
>>387
.NET4.5.2で作った非同期プログラムを.NET4.0環境に入れる必要が出てそれ使ったわ
上に書いてあるとおり一部のTaskをTaskExに変えたぐらいで基本問題なく動いたよ
2017/05/21(日) 22:53:00.26ID:iRCfL5dm
納品直前まで使ってるGUIフレームワークが何かも把握してないとかいくらなんでも仕事サボりすぎ
特に使用制限厳しい案件でその管理体制ならろくな会社じゃないな
2017/05/21(日) 22:53:45.96ID:C57KKbG4
Apache2ですらNGとか業種によっては笑い話レベルだな
2017/05/21(日) 23:08:15.63ID:yzY+yVHd
最近は、マイクロソフト製ですらオープンソース(Ms-PL等)で公開してるものも多いのに、それらが利用できないとは大変だな。
2017/05/21(日) 23:08:56.34ID:sSTv/YxK
>>388
その程度の理解でひっくり返されるのなら現場は大迷惑だな
2017/05/21(日) 23:09:59.73ID:sSTv/YxK
GPLならまだ理解できるが
2017/05/21(日) 23:11:19.51ID:1/e81eGH
PowerShellもRoslynもMSBuildも駄目なのかなwww
2017/05/21(日) 23:32:28.60ID:iRCfL5dm
企業が責任を持ってメンテナンスしている安心感
保守契約で守られている安心感

なんかおじいさん達にはそういうのが大事らしい
自社の製品見た上で企業への信頼とか言ってるなら正気の沙汰ではない
2017/05/21(日) 23:55:49.50ID:38jZbypf
MonoGameってC#7.0使えるの?
398
垢版 |
2017/05/22(月) 00:21:16.72ID:KxRThp41
あるあるだと思うけど。うちも割と悩んで載せることにしたものはあったな。
金はいくらでも払うが、明示する系はダメとか昔は結構あった。
法務部が腰重いのもある。
2017/05/22(月) 00:47:09.79ID:1ihqP+7T
>>398
そうなんだよねぇ
場所によってはお金払って自由って方が通りやすいんだよね
ソフトの値段なんてたかが知れてるからね
ハード1個売れるだけで簡単に億いくし
2017/05/22(月) 08:54:00.72ID:vDKIrmk/
>>392
2017になって、特にそう思う。

一応、うちはPrismはおkだけどな …
2017/05/22(月) 09:34:19.34ID:1ihqP+7T
>>400
うちはってよりお客がだよね
JRとかNTTとか高確率で駄目って言いそう
2017/05/22(月) 10:57:07.83ID:NpIrM3yR
そいつらは自分ちのTVのマニュアル見たことないんだろ
今はオープンソースライセンス文がずらずら並んでる
2017/05/22(月) 11:04:31.53ID:l8xRI2bt
>>402
実際どうかってよりでかい会社の請負って間に幾つか会社が入っててそのうちの一人でも駄目って判断をすれば駄目なんだよ
その人は多分プログラマじゃないし今まで必要なかったのに必要になるってところもおそらく理解できない
そんなとこだよ
2017/05/22(月) 11:18:54.23ID:vDKIrmk/
>>402
ことなかれ主義ですからね
2017/05/22(月) 11:32:44.78ID:SMVCp6Um
企業が割に合うかどうかわからないリスクを避けるのは当たり前だと思うけどね。
シロがシロであることを確証するのにもコストかかるのが分からないのはお子様過ぎるんじゃないの?w
2017/05/22(月) 11:40:33.60ID:l8xRI2bt
申請出してて納期直前で駄目って返って来たときにどれだけ対処できるかだよね
2017/05/22(月) 11:47:49.70ID:eJszv2Pe
そういう場合はリスケに応じることって発注契約書に書いてるわ
さっさと返事しないのが悪いんだから
2017/05/22(月) 11:49:36.22ID:eJszv2Pe
別に使えないなら使えないなりの見積もり立てるからいいんだよ
ギリギリに返してくる馬鹿会社が死ね
2017/05/22(月) 12:34:23.64ID:TZYu7Wfg
今のASP.NETなんか使うとMS非保証のOSSが山ほど入るよね
日本型の業界構造のままでは開発環境すらまともに使い物にならない時代になってしまった
2017/05/22(月) 12:59:31.08ID:l8xRI2bt
でもこれ危険だよね
ms側がバージョンアップして
フリーソフトにおんぶで抱っこのソースにしちゃって
フリーソフトの更新が止まっちゃってるときに
msバージョンアップ対応するってときに
窮地に立たされんじゃないの?
2017/05/22(月) 13:09:41.67ID:eAPLFCmr
勝手に無駄なハードル作りまくって
それで自滅するのが好きだよな、日本って

ちょっと規模が大きくなると
外への攻勢に疲れるのか知らんが、身内を攻撃し始める
2017/05/22(月) 13:25:26.12ID:1ihqP+7T
>>411
でもフリーソフトの更新止まっちゃったら具体的にどうするの?
2017/05/22(月) 13:45:37.69ID:5GrenZQq
オープンソースだから、最終的には自分で直すんだよ
2017/05/22(月) 13:48:35.15ID:1ihqP+7T
>>413
げー、最悪
じゃあ、オープンソースってレビュー対象なんだね
2017/05/22(月) 13:54:08.30ID:5GrenZQq
オープンソースのフリーソフトと同じ機能を内製するよりリスクは低いわけだから
問題にしているのは権利関係が多いんじゃね
2017/05/22(月) 14:27:56.16ID:eAPLFCmr
医療機関や原発施設とか
僅かでも可能性があっちゃいけないようなケースも稀にあるけど
それに同じ次元の宗教を一般民生用途にも当てはめようとするのが日本

石橋を叩くと言えば聞こえは良いが、叩いた上で渡らないという。

だから中国に置いてかれちゃうんだよ
2017/05/22(月) 14:48:10.64ID:CmaccE3w
それはリスクじゃなくてコスト
リスクっていのは訴訟リスクのことだよ
大丈夫か

このレベルの奴が日本の企業はダメとか上から目線で言ってるだからへそ茶も極まるなw
418デフォルトの名無しさん
垢版 |
2017/05/22(月) 15:41:18.07ID:omVxQ446
c#でwebdriverを使用してChromeを自動操作しているんですが
ページ遷移する際に待機時間を設定する方法がわかりません
具体的にいうと以下のように時間指定した後
2つのサイトを連続して開くような処理なのですが
待機時間がむしされてページ遷移してしまいます。

webDriver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5);
webDriver.Url = ウェブサイト1;
webDriver.Url = ウェブサイト2;

どなたか解決法ご存知の方いたら教えて頂けますでしょうか?
どうぞよろしくお願いします
2017/05/22(月) 15:42:34.62ID:1ihqP+7T
日本の開発は時代遅れとか言ってるアウトサイダーに限って
じゃあ、実際に問題がおこったら俺しーらねみたいなクソばっかで
信用できない
2017/05/22(月) 15:49:07.59ID:1hpbwYAN
シンタックスシュガーにつつまれてるからお前ら気づいてないかもしれないけど
ここは初心者用の質問スレだ
2017/05/22(月) 15:57:03.59ID:5GrenZQq
>>417
出荷前までのバグはコストだけど、出荷後のバグはリスクじゃね?
2017/05/22(月) 16:43:54.30ID:Fd+achIP
>>418
C#で使った事ないけど、Timerとか?
C# Timerでググったらそれっぽいの出たよ。
2017/05/22(月) 17:07:18.90ID:brZChpEQ
最近だと、Webアプリ(?)って、何で作ればいいんでしょう?
昔VS2018の時代はWebアプリで作ったんですけど。
2017/05/22(月) 17:10:50.25ID:qnT1Y5yL
>>423
お前は未来人か?
2017/05/22(月) 17:27:58.98ID:brZChpEQ
2008でした
2017/05/22(月) 17:30:51.07ID:yiQaLvEL
>>418
触ったこともないけどちょろっと検索した感じ
findElementなりで要素検索するときに見つかるまで待機するためのもんらしいけど
1ページ目に遷移した後なんか適当な要素検索したらどう?
2017/05/22(月) 17:48:34.92ID:ewWXKUc8
>>418
まさか引数がmsとかいうオチじゃないだろうな?
2017/05/22(月) 18:08:50.59ID:1hpbwYAN
>>418
それ待機時間を指定じゃないから…

WebDriverWait
429デフォルトの名無しさん
垢版 |
2017/05/22(月) 19:39:51.96ID:YIKJJ/dk
http://tech.bbtune.com/csharp/items/3-18.html

インスタンスHelloをintに型のするまではわかるんですが
すでに値が設定されているローカル変数にクラスのインスタンスを代入することの意味がわかりません
Console.WriteLine("i = {0}",i); i++;はどういう経緯でYの値が無視されてXの値が代入されてるんですか?
明示的なキャストでreturn h.x;はどこに代入されてるのかもわかりません。
どなたか教えてください。宜しくお願いします。
430デフォルトの名無しさん
垢版 |
2017/05/22(月) 19:54:05.26ID:RIp9oKHd
Linq to SQLについて質問があります。

現在DBから特定のIDの最大値を取得する問合せをしているのですが、生成されるSQL文があまり効率のいいものではありません。
どの様に記述すれば効率の良いSQLが生成されるか、ご教示いただけないでしょうか。

【期待値】
 SELECT MAX(Id) FROM TestTable

【検証1】
 ■期待値のSQLが発行されるが、レコードが無い場合例外となる
 System.Data.Linq.Table<Test> table = context.GetTable<Test>();
table.Max(i => i.Id);

【検証2】
 ■レコードが無い場合はnullとして結果が返るが、期待したSQLではない
 System.Data.Linq.Table<Test> table = context.GetTable<Test>();
table.Max(i => (int?)i.Id);

 〇生成されたSQL(サブクエリが生成されてしまう)
SELECT MAX([t1].[value]) AS [value]
FROM (
SELECT [t0].[Id] AS [value]
FROM [TestTable] AS [t0]
) AS [t1]

よろしくお願いいたします。
2017/05/22(月) 19:57:22.29ID:1ihqP+7T
>>430
道具なんだから使えない場面で無理して使うな
2017/05/22(月) 19:57:38.58ID:TAH0zPbT
>>412
そもそも更新が止まる程長い間同じものを使い続けない
今はビジネスの変化がすごく早い
だからシステムも追随して早く変化しなければ競争に負ける
システムの更新が早ければ新陳代謝で旬の過ぎたOSSへの依存はそのうち消える

日本企業においてはビジネスが変化しないのでその限りではない
2017/05/22(月) 20:08:02.25ID:Zgh5eQVH
昔も英字 3 文字の略号で示される「新しい技術」が流行ったものだが,今となってはどこにいったのかさっぱり
2017/05/22(月) 20:10:05.99ID:qnT1Y5yL
>>430
レコードがない場合は検索しなきゃいいんじゃないか?
435430
垢版 |
2017/05/22(月) 20:16:47.20ID:RIp9oKHd
質問者の430です。

早速のレスありがとうございます。

>>431
 出来るか、出来ないかが判らないため、出来る方法が無いか質問いたしました。

>>434
 レコードカウント->MAX集計の場合、2回クエリが発行されるため1回で結果が返る方法などないでしょうか?
2017/05/22(月) 21:03:07.42ID:1hpbwYAN
Linq to SQLはディスコンなので使うな
が正解
437430
垢版 |
2017/05/22(月) 21:25:55.74ID:RIp9oKHd
>>436さん
 EntityFrameworkの場合、ちょっと(?)ではあるのですが多少改善されているようでした。
 Linq to SQLは.NET3.5縛りがあるので仕方なくとなります。。

【EntityFrameworkの場合】※サンプルは削除してしまったので若干うろ覚えです。
 SELECT t1.Id FROM ( SELECT Max(t0.Id) TestTable AS t0) AS t1
2017/05/23(火) 01:20:49.37ID:lTsrConv
>>429
どこでつまづいてるのか分からん…

> すでに値が設定されているローカル変数にクラスのインスタンスを代入することの意味がわかりません
代入で値が変わりましたよってのを表すためじゃない? まあ別にいらないけど

> Console.WriteLine("i = {0}",i); i++;はどういう経緯でYの値が無視されてXの値が代入されてるんですか?
> 明示的なキャストでreturn h.x;はどこに代入されてるのかもわかりません。
iはint型だからXの値とかYの値とか関係ない
iに入るのはhをHelloからintに変換した結果、つまりop_implicit(h)の返値
h = new Hello(1)だからh.x=1, h.y=10
なのでop_implicit(h)はh.xである1を返す
よってi = (int)hによってiに1が代入される
2017/05/23(火) 02:34:14.69ID:JboiPkez
PrismなんてほぼMS公式なのになぁ
JSONとかもJson.NET使えばいいから標準ライブラリには入れないよって感じだし

Web周りとかをやることになったらjQueryもReactもすべて禁止になるのかな
2017/05/23(火) 07:19:49.41ID:TzWfghED
>>439
toolkitが曲者
これ不具合があっても平気で放置されてるよ
完全自己責任じゃないのこれ?
441
垢版 |
2017/05/23(火) 08:57:24.20ID:9OGdTOvp
>>414
あ、うちレビュー対象だよ。
2017/05/23(火) 09:56:41.61ID:3W0XlzKr
>>429
ぶっちゃけC#離れてしばらく経つから初見だけど、operater何ちゃらってのが

クラスを値型にキャストする時。i = x
値型をクラスにキャストする時。x =i(コントラスタ経由)

それぞれどのフィールドを反映させるか明示させてるだけだよね。

キャストしたら複数あるフィールドのどれが値型に入るか、値型がどのフィールドに入るか分からないから、やってみないと分からないし、漏れた分はどこいった?ってなって怖いから。

getter/setterやプロパティあれば良いだけだから、余程頻繁にやらない限りはコード書くコストが赤字になりそうだが。

yのyは無視というかXYメソッドでしか使われてない。
443デフォルトの名無しさん
垢版 |
2017/05/24(水) 00:58:21.35ID:p69ay+rF
>>438
>>442
返信ありがとうございます
アドバイスを元に見直してみたところ相当勘違いがあったことがわかりましたが何とか理解できました
444デフォルトの名無しさん
垢版 |
2017/05/24(水) 01:00:36.58ID:j84N/qwQ
今からC#のGUIプログラミングの勉強をしようと思ってるんですが、何から手をつけたらいいでしょうか。
WindowsFormsは古過ぎるらしいですし、WPFもあんまり評判がよくないようです?
UWPというのはWin10専用らしいんですが、
今の環境がWindows7で、今のところ10にする予定もないので、7で動いてくれないと困ります。
2017/05/24(水) 01:11:24.86ID:Run0pESv
>>444
個人のお勉強目的でデスクトップアプリ作るならWindows Formsで十分
Web上に日本語情報も多いし

Formsで満足できなくなってきたときに、より新しいものに挑戦してみたらいい
2017/05/24(水) 01:12:58.93ID:WPD3uDy6
>>444
とりあえずWindowsFormしかないんじゃないだろか?
2017/05/24(水) 11:34:07.38ID:6Y2qmaWe
>>444
WPF、Win8、Win8.1、WP、UWPと、ことごとく新しいGUIはC#+XAMLで作られてるから、勉強だと思ってWPFで作っておいた方が後々技術が応用しやすいよ。
2017/05/24(水) 11:40:36.61ID:rRpM8tLB
でも残念ながら使える書籍が1冊もないんだよね
2017/05/24(水) 11:52:35.12ID:XBA0eVol
WPFは標準の画面パーツがFormの半分すら無いから始めてやるにはあまりオススメはできんかな
Formで出来たことをやろうとするとnugetで探す羽目になるのが
2017/05/24(水) 12:13:07.83ID:MnuqeZiD
>>447
先のこと考えるならHTMLを選ぶべきでは
2017/05/24(水) 12:25:04.09ID:mj1wJSTY
>>444
悩ましい選択だよね
WinFormsは古いのは確かだけど、今後も使い続けられていくだろうし、枯れた技術だとも言える
WPFは相対的に新しいけど、将来性が微妙という点では五十歩百歩
プログラミングの経験や知識がそれほどでないなら、WinFormsのほうが習得はしやすいかな
より単純明快で、Web等で入手できる情報もより豊富だからね
古くても知っておけばその知識は無駄にはならないと思うし
WPFはMVVMの宗教論争をくぐり抜けて、自分なりのスタイルを確立できる自信がある人で
ないと、なかなかお勧めできないw
2017/05/24(水) 12:25:31.96ID:kHE7pfKI
Electronだな
453デフォルトの名無しさん
垢版 |
2017/05/24(水) 12:41:47.08ID:8JWkr8fd
勉強が目的なのか作りたいものが目的なのかで挫折率って大きく変わるから作りたいものがformsで出来るならそこから始めたほうが絶対に良い
2017/05/24(水) 12:55:27.94ID:rRpM8tLB
WPFって見えないんだよね処理が
バグっててもハイここですってわかりにくい
2017/05/24(水) 13:19:48.05ID:ZnkTJstw
WPFの弱いイベントパターン化にすごく苦労したわ。
UWPはsegoeフォントとか色々あるから、とりあえずWinFormsで良いと思う。
2017/05/24(水) 15:58:09.23ID:/N4PQk0O
wpfのBindingはエラーが出ないから初心者には辛いかもしれんね
却ってUWPのx:Bindならエラーが出るから初心者向けかもしれん
2017/05/24(水) 16:39:08.86ID:t4Kbn6Ni
>>444
WinFormで電卓を作れ
458デフォルトの名無しさん
垢版 |
2017/05/24(水) 18:37:23.77ID:wLU8X/p7
PHPにできてC#で出来ないことってないよね?
2017/05/24(水) 18:49:47.47ID:t4Kbn6Ni
>>458
内容にもよるし言語によって向き不向きもあるから、何とも言えん
2017/05/24(水) 19:42:47.65ID:WPD3uDy6
>>458
レンタルサーバーで実行できるのはスクリプト言語だけやぞ
2017/05/24(水) 20:00:04.74ID:QZczTL/V
>>460
お前どんな世界からきたんだよwww
2017/05/24(水) 20:07:51.96ID:B7M84uwd
>>460
2017/05/24(水) 20:15:01.70ID:WPD3uDy6
>>461
有料レンタルサーバーとかブルジョワかよ!
2017/05/24(水) 20:35:57.07ID:B7M84uwd
>>463
例えばAzureの無料プランでもC#のWebアプリ書けるだろ
2017/05/24(水) 20:57:50.88ID:e1iv8ltj
WinFormsでちょっとしたローカルデータベースのアプリを個人で作ってみる予定です
年間10000レコードくらいの規模です。
ググってるとSQLiteかSQLServerCEか、みたいな感じなんですが
選ぶとしたらどういう基準で選べばいいでしょうか?
C#でデータベース自体扱ったことがないので、ネットで情報が手に入りやすく
初心者にやさしそうな方を選ぼうと思っています。

Access+vbaはいじったことあるので、accdbにしようかと思ったのですが
access入ってないPCで使うのにAccess選ぶのもどうかと思ったのと
OfficeかAccessランタイム辺りをインストしたPCでないと最適化が使えそうにない?ので
選択肢から外そうかと思っています。(最適化できるならAccessでいいかとも思っています)

後、DataSetとTableAdapterはある程度知っているのですが
今やるならEntityFrameworkとか使った方がいいでしょうか?
EntityFrameworkだけでも何やらいろんな方法が出てくるのですが
いまいちどれを選んだらいいかわかりません。
どうせなら今風のやり方を学んでみようかと思ってますが・・・
2017/05/24(水) 21:02:09.82ID:/ySUjkwg
>>465
個人で使うだけならSQLiteで十分
EFなんか要らん
2017/05/24(水) 21:06:27.05ID:/s+SEDS3
>>465
SQLServerCE(今の正式名称はSQL Server Compact)は、マイクロソフトから見捨てられたと言って良い状態。
SQLiteの方が色々揃ってて良いよ。
ViaualStudioの管理用のDBも、昔はSQL Server Compactだったけど、今はSQLiteになったし。
2017/05/24(水) 21:18:41.15ID:H5XM/7SQ
>>465
DataSetは捨ててDapper使え
2017/05/24(水) 21:21:41.85ID:SlEdBanT
>>465
SQL覚えるの面倒とかなら、EFもありじゃないかな
EFcoreから、SQLite正式対応したし
2017/05/24(水) 21:38:15.74ID:XBA0eVol
SQLiteとDapperかな
年間1万レコードなら正直何でも良い気もするけど
2017/05/24(水) 21:45:18.79ID:e1iv8ltj
>>466
>>467
ありがとうございます
SQLiteにしようかと思います。

>>468
>>465
DataSetは結構わかりやすくてよかったのですが
EFは正直Webサイト読んでてもなんかピンと来ず
どんどん新しいことが増えていってるせいか情報がまとまってるところが見当たらなくて…
でも、DataSetが古くなった今では?こき下ろしてるサイトも結構見かけて
使い続けるのもどうかなぁと思ったり…

DBからデータを引っ張ってくるところは
かなり簡素な内容になる予定なので
SQL覚えるよかEFを学ぶほうがコストはよっぽどかかると思います。

DapperっていうのはEFよりも簡素でその分簡単に扱えるORMって感じですかね?
これが自分にはいい選択肢かもしれないです。
ちょっとググってきます。
2017/05/24(水) 21:48:01.03ID:Qqvx0l46
そういう時はPostgreSql on Dockerで決まりやろ
2017/05/24(水) 21:59:07.41ID:H5XM/7SQ
>>472
>ちょっとしたローカルデータベース
って書いてあるだろ
2017/05/24(水) 22:03:04.15ID:Qqvx0l46
>>473
その用途で使えるよ
2017/05/24(水) 22:23:57.66ID:dFpq1SmP
>>471
sql serverとdatasetで十分だろ
2017/05/24(水) 22:41:56.36ID:QZczTL/V
>>463
お前ちょっとはググれよ
2017/05/24(水) 22:43:02.96ID:QZczTL/V
>>466
個人で使うならむしろEFが楽じゃね?
478デフォルトの名無しさん
垢版 |
2017/05/24(水) 23:01:27.95ID:8JWkr8fd
formに大量のコントロール配置すると、ロードしたときや画面更新するときにパラパラパラパラって表示されるんですが一気に表示させられないでしょうか
〜Layoutは全く効果ありませんでした
DoubleBufferなるものはまだ確認してません
何か効果的な対策あればお願いします
2017/05/24(水) 23:03:46.59ID:Qqvx0l46
UX設計からやり直せ
2017/05/24(水) 23:18:37.48ID:QZczTL/V
>>468
上の件とは関係ない純粋な技術的興味なんだけど、リポジトリパターンでDapper使った場合のUnitテストをメモリ上でやる方法知らない?
2017/05/25(木) 00:20:47.28ID:foQMlEN2
>>480
DBを使わない実装に差し替えればいい
何のためのリポジトリだよ
2017/05/25(木) 00:35:01.49ID:Xlj75eVQ
問題を切り分けて考えよう
リポジトリを使う方のテストは実装を差し替えてテストするとして、
リポジトリ自体のテストの方はクエリの確認が目的だ
だったらDBは本番と同じものを使わないと意味がない
SQLiteみたいに揮発モードのあるDBならそれでいいが、
それが無いからといってSQLiteに差し替えるんではなくて、実環境がpostgresなら必ずpostgresを使うべき
リポジトリのテストだけに使うんなら少々遅くても大した問題にはならない
2017/05/25(木) 01:01:25.74ID:dghxTHJJ
たった1万レコードならExcelだろw
2017/05/25(木) 01:31:22.95ID:VSmfM+8N
>>482
EF CoreならInMemoryでUnitテストできるでしょ。Dapperで同じようなことやる方法ないかな?実DB使うのはIntegrationテストやね。
2017/05/25(木) 01:33:11.71ID:IHlmG7DJ
>>481
アホか
486デフォルトの名無しさん
垢版 |
2017/05/25(木) 03:19:29.79ID:6QEDJboy
C#でこまってます
ストリーミングで配信されている動画を保存するにはどうしたら良いでしょうか?
↓例えば日テレニュースとかです
https://s.yimg.jp/images/jpnews/cre/common/all/html/embedplayer_pc.html
2017/05/25(木) 06:32:23.84ID:OZ9w4Yf7
>>486
この手の技術は殆ど知らないけれど
ソースみてみたら、本体はこの辺りのページにあるみたいだね
https://698d9f953062bf2055bc26d408fa518c.cdnext.stream.ne.jp/web/live/hls-live/yahoo-news-3ch-live/livestream.m3u8
m3u8 でググッてみたらmp4変換する方法とかがあるみたい
2017/05/25(木) 07:02:50.17ID:Xlj75eVQ
>>484
Dapper使ってるならDBMSに対してSQLを直に実行してるんだからどう転んでもテストはDBMSに依存する
テストフェーズは関係ない
なんか勘違いしてるようだけど、この場合EFに相当するのはDapperではなくリポジトリの方だ
EFのInMemoryモードを使うことはリポジトリをインメモリな実装に差し替えることに相当する
2017/05/25(木) 07:10:56.11ID:sTAredU3
現行で進んでるような専用の板が見付からなかったのでスレチかも知れないけど助けてくれませんか
概念的な話になります

http通信を行っているc#のサーバ側の開発に携わったんだけどリソースって言葉が曖昧すぎて困ってます

httpで通信するときに
put ←動作
uri ←対象
body ←引数

渡してるのはuriとbodyだからこの二つがリソースを指すのだろうか??
それともどちらか片方?
2017/05/25(木) 07:18:51.19ID:iDw56Z9j
>>489
リソースの定義が曖昧だとしても実用上何か困る?
2017/05/25(木) 07:26:10.80ID:sTAredU3
>>490
今あるやつを猿真似すれば良いだけだから開発には困らない
ただ理解して書かないと何を何のために追加したのかも説明できないから理解したい
言葉の整理がしたくて調べてたけどリソースについて全然記述が見つからず...
2017/05/25(木) 07:26:53.04ID:Xlj75eVQ
>>489
RESTのリソースっていうのは「顧客1」「5月25日の投稿」といった、名前によって識別される何かを指す抽象概念
Webならデータがサーバーに格納されてURLによってアクセス可能な状態になった時点でリソースとなる
2017/05/25(木) 07:31:04.00ID:iDw56Z9j
>>491
リソースuri
リソースbody
でいいんじゃないか?
2017/05/25(木) 07:37:42.57ID:sTAredU3
>>492
クライアントは
動作としてputなどを
何に動作させるかのためにURLを
データ(リソース)としてbodyを
ってことで良いのかな?

>>493
そうなっててでも違うのかあってるのかみたいになってるんだ
2017/05/25(木) 07:45:57.64ID:Xlj75eVQ
>>494
クライアントはリソースに対する操作とその結果を扱っているにすぎない
リソースの実体は常にサーバーにある
2017/05/25(木) 07:49:43.64ID:72iDOUXT
>>495
あ 書き方が悪かった
クライアントが上記のように通信してきたとしたら
サーバー側は上記を三つのように解釈して処理をする?
って聞いた意味だった

データをentityに受け取って、URLで識別してアクセス可能になった
この状態をリソースと呼ぶ?それともentityのことをリソースと呼ぶ...?
2017/05/25(木) 07:55:41.69ID:a8axhl9c
>>488
リポジトリの差し替えじゃなくてproviderの差し替えだろ
2017/05/25(木) 07:56:41.84ID:Xlj75eVQ
>>496
クライアントが送ってきたものはリソースではなく単なる操作
その操作対象となる、サーバー側のDBやファイルシステムにある何かがリソース
2017/05/25(木) 08:01:40.11ID:72iDOUXT
>>498
ああああああああああああああああああああああああああああああああああああああ
わかった 今わかったかも

Aのファイルがサーバーにあったとしたときに

クライアント
Aにputするよ
URLは取り決めでxxxxだよ
Aに操作する値はbodyだよ

こういうときにサーバーで言うリソースってのは
クライアントが送ってきた情報ではなく、その対象となるAか!!!
2017/05/25(木) 08:02:52.71ID:iDw56Z9j
君がそのPJではリソースとはこういう意味で使ってますと決めればいいやん。
2017/05/25(木) 08:09:40.42ID:Xlj75eVQ
>>497
一緒だよ
アプリからのエンティティの操作がDBMSに依存しないことをEFが担保する
それをMSがproviderの差し替えで実装してようが、そんなことはどうでもいい
少なくともDapperを使って実装したリポジトリパターンではその責任をリポジトリに負わせているのだから、当然リポジトリを差し替えるのが筋
2017/05/25(木) 08:14:47.64ID:72iDOUXT
>>500
追加開発だから無理だった
リソースの説明よんでも理解できなかったから一般的にどのような意味なのか知りたかった
こんな感じだった
2017/05/25(木) 08:25:23.90ID:a8axhl9c
>>501
各DBの違いを吸収するためにproviderを作ってるのはあくまでもDBベンダーだからね。
2017/05/25(木) 11:34:34.78ID:OlDCYnHs
WinFormでForm1.csで使用しているコントロールがデザインのどこにあるか探す方法って、
Form1.Designer.csの座標を見る以外にありますでしょうか?
また変数等を検索する時、コメント部分はスキップする方法はありますでしょうか?
2017/05/25(木) 11:40:39.74ID:WvpLhP2L
アプリ終了時に手動で破棄するべきリソースとそうでないリソースの区別はどうつけたらいいのですか。
Disposeメソッドを持っているクラスのインスタンスは全部、アプリ終了時にDisposeすべきなのでしょうか。
2017/05/25(木) 11:57:56.72ID:QWlkLrx5
>>504
どんな状況かよく分からんがドキュメントアウトラインは?
検索は全ての参照を検索(Shift+F12)とか
2017/05/25(木) 12:11:41.77ID:z/F8HTBQ
数値の配列(リスト)が30程度あって、その配列を要素ごとに加算して
一つの配列にしたいのですが、何かいい方法あるでしょうか。
2017/05/25(木) 12:40:39.56ID:WvpLhP2L
>>507
こういう?(要素数固定
https://paiza.io/projects/xGTRpO0D5sJSgNs553qqkQ
509デフォルトの名無しさん
垢版 |
2017/05/25(木) 12:48:52.27ID:z/F8HTBQ
>>508
ありがとうございます!
すごくイカしてます!
早速試してみます
2017/05/25(木) 13:28:09.73ID:WvpLhP2L
あ、元になる数値配列の要素数がそれぞれ違う場合は、
public static int[] CombineArray(int[] dest, params int[][] source)
{
int n = dest.Length;

for(int i = 0; i < source.Length; i++)
{
for(int j = 0; j < source[i].Length; j++)
{
dest[j] += source[i][j];
}
}
return dest;
}
2017/05/25(木) 13:49:55.87ID:OlDCYnHs
>>506
状況は引き継いだソフトが、テスト用のコントロールも貼りまくりで、
使用しているコントロール名も「label1」とか貼ったまま使ってて、
未使用のコントロールも沢山あるので、
未使用はコメントにしたり名前を付けて整理しているところです。

ドキュメントアウトラインで整理しながら簡単に見つけられますね。
参照の検索で使用しているか確認出来ますね。
ありがとうございました。
2017/05/25(木) 13:57:53.66ID:Pu7QS8L6
未使用は果たして本当に未使用かな?
ってぐらい動的に変わるコントロールがあったりして作った奴ぶっ殺したくなることもしばしば
2017/05/25(木) 14:09:25.89ID:QWlkLrx5
>>511
そういう状況だとthis.Controls["label" + i]なんてやってるかもしれなくて
全ての参照を検索じゃすくいきれないかも知れないから要注意だぞ
2017/05/25(木) 17:42:16.87ID:KYr+IXo2
yield returnした方がスマート
515デフォルトの名無しさん
垢版 |
2017/05/25(木) 22:18:41.97ID:GaW0ueJ6
>>510
ありがとうございます
動作確認してみましたが問題なく、ソースの量もわかりやすさも文句無しでした
本当に助かりました!
2017/05/26(金) 10:09:45.86ID:oMsVEL65
C#の言語的な話じゃないので入れ違いかもしれないですけど
パワポをC#から弄ろうとしてますが、ファイルを掴んだままになってしまいます。

using System.Windows.Forms;
using DocumentFormat.OpenXml.Packaging;

PresentationDocument ppt = PresentationDocument.Open(@"D:\A.pptx", true);
ppt.SaveAs(@"D:\B.pptx");
ppt.Close();
ppt.Dispose();
MessageBox.Show("できました");

A.pptx を読み込んで B.pptx に書き込むだけでテストしてますが
この実行プロセスを終了させないと(「できました」の表示の時点では) B.pptx が掴まれているらしく
開いたりコピーしたりできません。

誰が掴んでるか調べる手段はありませんでしょうか。
2017/05/26(金) 10:28:52.28ID:wx4ZD6yu
>>516
https://msdn.microsoft.com/ja-jp/library/office/cc850847.aspx
2017/05/26(金) 10:53:24.42ID:oMsVEL65
そうじゃなくて、Close と Dispose を明示しているにも関わらず
内部で保存先のファイルを掴んだままになっちゃってて弄れない、って意味です。

プロセス(EXE)を落とせば解放されるんですけど、続きの処理があるもんで。
2017/05/26(金) 10:58:38.55ID:YpZka8l7
SaveAsがOpenXmlPackageオブジェクト返すじゃん? これIDisposable
2017/05/26(金) 11:02:29.39ID:oMsVEL65
なんと!
まさにビンゴでした。

ppt.SaveAs(@"D:\B.pptx").Dispose();

で無事に目的を果たせました!
ありがとうございました!!
2017/05/26(金) 11:07:25.38ID:wx4ZD6yu
Disposeが実行された != オブジェクトが解放された
2017/05/26(金) 11:09:43.92ID:2W2wzaM7
そういやusing使っても明示的にCloseする必要ってあるのかね?
2017/05/26(金) 11:12:46.50ID:VZJYvcQe
>>522
ないよ
http://divakk.co.jp/aoyagi/csharp_tips_using.html
2017/05/26(金) 11:15:03.63ID:2W2wzaM7
>>523
ありがとう
2017/05/26(金) 14:46:54.86ID:F6wIZe6/
すみません
Char.IsNumber()メソッドは文字列の内の一桁しか判別できないのですか?また2桁以上を判別したい場合はどのメソッドを使うと良いのでしょうか
2017/05/26(金) 14:53:33.20ID:YpZka8l7
文字と文字列は区別付けよう
ところでChar.IsNumberはいわゆる全角の数字とかローマ数字とかもtrueって評価するけどその辺どうすんの?
2017/05/26(金) 15:15:25.80ID:V0QADimW
>>525
先ず何がしたいのか言えよ
2017/05/26(金) 15:21:51.18ID:B4KqQKUi
>>525
C# string isnumberでググれ
いくらでもでてくる
2017/05/26(金) 15:22:13.46ID:sdCJMym9
テキストボックスに突っ込まれた文字列が数値かそうでないか判断したいんだきっと
でもisnumberじゃ駄目だったよイマココ
int.parseだきっとint.parseが求める答えだったんだよ!


シラネ( ´∀`)b
2017/05/26(金) 15:26:56.97ID:V0QADimW
俺だったらconvert.toint32だな
2017/05/26(金) 15:32:43.39ID:/9nVrKkw
俺なら正規表現を使う
2017/05/26(金) 15:39:55.03ID:nLIvGLmM
なんでお前等は嫌みな回答しかできないの?
2017/05/26(金) 15:44:35.17ID:IbAmlhQI
>>529
判断したいのならTryつけようよ
>>525
むしろChar.IsNumberとか知らなかった
文字列 数値 変換 とかでググるとTryParseがすぐ出てくるはず
outが嫌なら別の当たって
2017/05/26(金) 15:59:29.40ID:IgcvauO6
符号付きとか全角とかアラビア数字とかHとかどう判定したいのっと
2017/05/26(金) 16:30:48.38ID:F6wIZe6/
なるほど!
やっぱりTryParseメソッドが良さそうですね
>>529さんのおっしゃる通りでした!
確かにこの質問だけでは>>526さんや>>534さんのような問題も出てくるんですね!申し訳ありませんでした。判別したかったのは一般的な全角と半角の数字のみでした。
>>526さんChar.IsNumberに渡すのはstring のような文字列型も渡せるのではないのですか?
>>530さんConvert.toint32メソッドは文字や文字列を渡すとスローされるのではないのですか?

526
529
531
533
534さん相談に乗っていただきありがとうございました!
2017/05/26(金) 16:42:29.54ID:sdCJMym9
>>532
プログラムの回答って必要最小限でぶっきらぼうに回答すると全部嫌味に見える
そういうつもりはないんだよ
2017/05/26(金) 17:21:30.79ID:VWRnjUMH
アルファベットのIVX使ってギリシャ数字書くやつが居るから面倒なんだわ
2017/05/26(金) 18:23:18.38ID:bEaQUHBT
>>535
ないと思うけど、国外向けのプログラムを作る時はロケールも意識しないとあかんよ
2017/05/26(金) 18:44:14.72ID:YpZka8l7
>>535
> Char.IsNumberに渡すのはstring のような文字列型も渡せるのではないのですか?
Char.IsNumberにStringを渡せるオーバーロードの引数は
Char.IsNumber(String, int)
この文字列の何番目の文字を判定しますか? ってこと
2017/05/26(金) 18:51:35.84ID:bEaQUHBT
そんなオーバーロードあるのかw
stringのインデクサがあれば要らないはずだけど
2017/05/26(金) 19:03:32.42ID:2W2wzaM7
最近.net2.0の案件ばかりで泣きたくなってくる
2017/05/26(金) 19:15:44.49ID:4GVMWdle
>>541
かわいそうに…
2017/05/26(金) 19:16:58.08ID:C1R8iru0
古いものの方が安心感がある
って人多いよね
何の根拠もないんだけどw
2017/05/26(金) 19:58:52.45ID:w0WYW3h/
>>543
あるだろ
バカがいじらねぇからw
ウィルスより質が悪いって認識されてんだろ
2017/05/26(金) 20:13:06.21ID:bEaQUHBT
>>543
ほとんどの場合は君が被害妄想全開で勘違いしてるような理由じゃなくて
再テストするコストの問題だと思うけどね
2017/05/26(金) 21:39:41.16ID:Ym5et5f0
>>541
この業界は9割以上がレガシーの保守らしいぞ
日本人はソフトになるととにかく新しいものを作りたがらない
2017/05/26(金) 22:02:23.90ID:Heb9aC5z
失敗の可能性にお金を払いたくないだけですな
とても便利になろうとも失敗の可能性があるからには手を出したくないって方が多い印象
2017/05/26(金) 22:24:11.81ID:Ym5et5f0
それが最大の失敗だよな
ミスを恐れて何もしないで結果、損をする
ダメ人間そのままじゃないか
2017/05/26(金) 22:26:22.91ID:bEaQUHBT
子供の論理だねそれw
2017/05/26(金) 22:27:57.00ID:bEaQUHBT
っていうか、どんな会社でも君が無給の勤労奉仕でやるっていうのならダメだって言わないと思うよ。
コストなんか問題じゃないんだって本気で思ってるのなら是非やったら?w
2017/05/26(金) 22:30:46.44ID:wJyNnfgg
スレの主旨とそれ以前に板のローカルルールくらい守れよ
2017/05/26(金) 22:34:19.73ID:V0QADimW
>>541
なんでそんな古い.netを使うの?
2017/05/26(金) 22:40:09.73ID:6mvWqLXP
>>549
スレのルールすら守れない子供は余所に行こうね
2017/05/26(金) 23:13:53.33ID:6Pwsd9SO
>>552
昔作ったから
2017/05/27(土) 01:19:14.36ID:rsPE4izq
使用しているapiをすべて記録してあればバージョンアップ時に楽なのかもな
2017/05/27(土) 08:05:10.08ID:2waTjXRv
記録しても変更できないんじゃ意味ないよ
変更を容易にするために日頃からリファクタリングをすること
これが唯一の正解なんだよ
塩漬けは最もやってはいけない行為
2017/05/27(土) 08:13:13.30ID:MuqnBgBV
>>556
そうだね
ずいぶん昔にソース管理に登録されてから変更のないシステムを一部改修することになって、本番稼働してるコードと同一かどうかを調べるのが大変なクソ現場です
2017/05/27(土) 09:01:34.21ID:SDTaiU/Z
async await つかってますか
2017/05/27(土) 09:54:28.11ID:2waTjXRv
Taskをラップした方がわかりやすいし他の言語にも移植しやすい
2017/05/27(土) 09:58:59.18ID:dfyKY7Wk
UWPに至っては、半ば強制的にasync await使わされます
ライブラリがそれ前提で作られているからね
2017/05/27(土) 10:24:26.01ID:reRwAhMh
今時PythonやJavaScriptにもasyncがあるのに何を言っているのか
なんだかんだC#のやり方は正しくて他の言語もすぐに追従する
2017/05/27(土) 10:25:05.62ID:IYBRhAj3
使いはするけど仕組みはよくわかってない人が多いんじゃないかな
実際はreturnしてるけどそういう風には見えない
2017/05/27(土) 10:36:00.65ID:IYBRhAj3
async awaitの説明サイトがあんまり初心者もは優しくないんだよな
どれもいまいちというか
何故かTaskの説明ばかり

重要な事にはほとんど触れてない
2017/05/27(土) 10:39:17.27ID:8fRknhmf
C#は突出して新しいことをやっているわけではないが
まだマイナーだけど光るものを見つけてきてメインストリームに持ってくるときの
取捨選択とデザインのセンスが神がかっているという印象
2017/05/27(土) 10:45:11.69ID:2waTjXRv
>>561
Java
2017/05/27(土) 13:41:30.68ID:p4c408zN
>>563
非同期(スレッド)を理解せずに非同期メソッドが使えるはずがなく、
そもそも非同期自体が初心者が気軽に使えるような機能じゃないんだから当たり前だw

っていうか、@ITの記事はちょっと説明が足りない部分はあるけどよく書けてるでしょ
あれで何が不満なんだ?
567デフォルトの名無しさん
垢版 |
2017/05/27(土) 13:59:40.73ID:gzircrhE
C#でintの配列を保存したファイルを読み込んでint配列に設定したいんですが
まずbyte[]に読み込んでそれを変換するという形になりますか?
一番効率の良い方法ってどんなでしょうか?
System.IO.FileStream fs = System.IO.File.OpenRead(path);
byte[] b = new [4*32];
fs.Read(b, 0, 4*32);
fs.Close();
int[] = n = new [32];
コピーはひとつずつする以外にどういうやり方があるでしょうか?
2017/05/27(土) 14:10:30.20ID:VKoRAsZa
>>567
var buffer = new int[ 32 ];
using( var fs = File.OpenStream( path ) )
using( var reader = new BinaryReader( fs, Encoding.Ascii, true ) )
{
for ( int i = 0; i < buffer.Length; ++i )
{
buffer[ i ] = reader.ReadInt32();
}
}
2017/05/27(土) 14:34:06.49ID:gzircrhE
>>568
そういう読み込み方があるんですね。ありがとうございます。
2017/05/27(土) 14:51:03.74ID:djXMvCo4
>>567
一番効率が良いというとやはりポインタにしてC++で言う所のreinterpret_castだけど
C#ではunsafeになり非推奨なので、基本形は>>568のようなBinaryReader/Writerになると思う

汎用的な所だとバイト配列と数値型の変換を行うBitConverter、IntPtrを介して遣り取りするMarshal.Copy
UnmanagedMemoryAccessorのバックエンドとなるSafeBuffer(ジェネリック及び構造体配列が指定可能)など
うちSafeBufferは抽象クラスなので http://ideone.com/P6ZpjV みたいな実装を自前で書く必要あり
571570
垢版 |
2017/05/27(土) 15:29:18.13ID:djXMvCo4
1つ忘れてた、Buffer.BlockCopyでバッファ自体をコピー可能、プリミティブ配列同士ならこれが最もシンプルだったような
Stream.Readの一部実装はArrayなら何でも読み込めた気がするけど、無理矢理渡す方法がアレなので…
あとSafeBufferの配列読み書きはMarshal.AlignedSizeOf<T>(内部メソッド)のバイトサイズでアライメントされる
2017/05/27(土) 15:40:23.00ID:IYBRhAj3
ポインタ操作ってリトルエンディアンは保証されてるのか?
2017/05/27(土) 16:00:40.64ID:5EjoFYzo
Bufferなんてクラスが1.1の時代からあったのか知らなかったw
>>567みたいなのはbyte[]でまとめて読んでint[]にunsafeかCopyMemory使って
コピーしてたなあ

>>567は配列の要素が固定なら固定サイズバッファの共用体使えば
コピーなしでいけるんじゃないかな
2017/05/27(土) 17:01:09.52ID:uuvh7wIS
質問の主語がわからんが、int配列のデータをWriteして、1バイトづつReadしたら、もちろん逆になってるよ
2017/05/27(土) 17:45:11.27ID:gIqbrIjJ
環境依存じゃないかって言ってるならたぶん理念的には環境依存なんだろうね

68kみたいにビッグエンディアンのC#の動作環境があったとしたら、
その環境ではbyte[]を*intで正常に読めないと思う
2017/05/27(土) 18:16:22.09ID:dfyKY7Wk
まあファイルI/Oはメモリー操作に比べると思いっきり遅いから
何やっても大して早くならんけどね
2017/05/27(土) 18:26:00.76ID:eydHjhDC
話題とは関係ないけどこれC#にあったっけ?
>File.OpenStream
2017/05/27(土) 18:27:21.11ID:gIqbrIjJ
>>576
だからこそパフォーマンスが必要なら1つずつチビチビじゃなくて一度になるべくまとめて読み書きするんですよw
2017/05/27(土) 18:32:14.66ID:S8Hvv/fS
>>578
基本的なことだけど、バッファがあるからアプリケーションレベルで小細工する必要はないよ
2017/05/27(土) 19:01:40.80ID:gIqbrIjJ
>>579
Windowsのアーキテクチャーに詳しいわけじゃないけど、
書き込みは確かにディスクキャッシュにバッファリングされるから
プログラム側でまとめて書いても効果薄いかもしれないけど、
読み出し時にはHWレベルでもOSレベルでも大きなキャッシュなんか
用意してないはずだから、プログラム側でまとめて読む意味はあると思うよ
2017/05/27(土) 19:10:38.40ID:nge3QdkF
>>577
Java と勘違いしてるか IO.FileStream( ) 辺りと混同してるんでしょ
2017/05/27(土) 19:12:01.62ID:nge3QdkF
>>579-580
それ以前にメソッド呼び出しだってコストはかかるわけで
2017/05/27(土) 19:22:03.52ID:PYJf2o92
>>567
なんでそんな事したいのか言えよ
2017/05/27(土) 19:29:20.90ID:VKoRAsZa
>>577
正しくは、File.OpenRead()だね。
良く確かめずにコピペしてたら駄目だなw
2017/05/27(土) 20:12:08.55ID:VKoRAsZa
>>580
検証したことないけど、FileOptions.SequentialScan指定してFileStreamを作成したらprefetch効かないかな。
2017/05/27(土) 20:52:47.13ID:dfyKY7Wk
>>580
ディスクの読み書きってさ、最小限でもセクターって単位で処理するんだが今のWindows10だと4096バイト有るんだわ
だから1バイト読んでもメモリーには最小でも4096バイト入るわけだね
2017/05/27(土) 20:59:07.50ID:gIqbrIjJ
>>586
HDDの物理層の知識はゼロだけど、セクターってのはファイルシステム上の概念であって
最小の読み出し単位じゃないと思うよw

SSDみたいなフラッシュメモリーには最小の書き換え単位が存在するけど
最小の読み出し単位は存在しない
2017/05/27(土) 21:03:14.20ID:WiwmRK76
物理層も高速化のためにセクタ単位で読んでるはずよ
ファイルシステムより低位の概念
2017/05/27(土) 21:06:30.48ID:+Wc4u9QX
>>587
ファイルシステム上の最小概念はクラスタ
セクタじゃない
2017/05/27(土) 21:12:40.87ID:dfyKY7Wk
>>587
ディスクってさ、回転するからそれとシンクロして読まないと一周待たないといけなくなるんだよね
だからディスクは決まったバイト数をシーケンシャルに読むのが当たり前なんです
で。その最小単位をセクターと呼んでwindows10だと4096バイト有る
SSDはそんなこと無いけど、HDDと同じ振る舞いで動くようにセクタ管理しています
2017/05/27(土) 21:14:04.21ID:WiwmRK76
Windows10だからというよりHDDが新しいからだと思われ
2017/05/27(土) 21:19:00.20ID:dfyKY7Wk
>>591
7かVistaあたりで2Tの壁が取っ払われた時セクササイズが変わったようだ(前は512)
2017/05/27(土) 21:20:55.03ID:nge3QdkF
定義は色々違うけど概ね
セクター ... 物理的に読み書きできる単位
ブロック... 論理的に読み書きできる単位
クラスタ ... ファイルシステムの割り当て単位
って言う場合が多い
なお HDD でも1バイトだけ読み出したり書き換えたりはできない
必ずセクター単位の読み書きになる
2017/05/27(土) 21:27:42.99ID:sdz07quX
>>564
そんな感じだよね
自分みたいな老体にはちょうど良い
2017/05/28(日) 00:11:01.44ID:HK/67GFs
今時OSどころかBIOSでさえ、ディスクの物理的なセクターとか管理できてないけどな
2017/05/28(日) 12:23:16.31ID:2K8JxE4j
UDPでデータをBeginiReceiveで非同期受信したらToastで受信文字列を表示させたいんだが、以下みたいなバックグラウンドスレッドからGUI操作はできませんみたいなのがでる
Java.Lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()

これ対処どうしたらいいかな
Javaのやり方は見つけたけど、Xamarinだとどうしたらいいかいまいちわからん「
2017/05/28(日) 12:33:51.75ID:X8MhB+Ic
xamarinスレがあるのに何でここで聞くの?
2017/05/28(日) 12:38:59.53ID:2K8JxE4j
あ、ごめんw
Xamarinスレと思って素で間違えた
失礼しました

ちなみにSynchronizationContext使ったら解決しました
2017/05/28(日) 20:16:37.95ID:dc5zy2FD
ブラウザコントロールを使ったアプリを作りたいんですが、
WinFFormsでもWPFでも、webサイトを開くと、ブラウザが古いって言われてマトモに表示できません。
新しいブラウザコントロールはどうやって使用したらいいでしょうか?
2017/05/28(日) 20:18:18.68ID:BVKFrymy
ブラウザ普通に使えばいいじゃん
2017/05/28(日) 20:24:15.70ID:LqX4nhhl
Electronにでも乗り換えてiframeでいいよ
2017/05/28(日) 20:38:08.43ID:X8MhB+Ic
>>599
「c# ie バージョン」でググれば解決策出る
2017/05/28(日) 20:54:57.63ID:Q4IaIxAm
>>599
"c# webbrowser ie バージョン"でググると色々出てくるよ
要はレジストリを弄る必要がるんだが、プログラムから変更して戻すパターンも有るから
探すと良いよ
2017/05/28(日) 20:57:31.19ID:OzzF/wdK
>>602
599じゃないけど幸せになれた
605デフォルトの名無しさん
垢版 |
2017/05/28(日) 21:52:44.46ID:9tRj7diM
WPFのデータバインディングって速度速かったりするん?
コントロールとDBをリンク出来るような感じって思って良いんだよね?
2017/05/28(日) 22:14:28.21ID:kC4qoZB1
>>605
件数と使う「Control」によるらしい
607デフォルトの名無しさん
垢版 |
2017/05/28(日) 22:17:03.35ID:9tRj7diM
>>606
じゃあXMLに保存された1万件の音楽情報を
グリッドに展開するとしたら?
2017/05/28(日) 22:32:41.86ID:WRn0Vp2w
データバインディングの動きを理解してない以上
手を出さねーほうが無難じゃね〜の?
2017/05/28(日) 22:59:20.62ID:kC4qoZB1
>>607
一万件程度なら楽勝かと
2017/05/29(月) 06:23:33.57ID:KA+g5PFR
$$$4.3$$$
"V"="1.3335412","0","1","3Q",
611デフォルトの名無しさん
垢版 |
2017/05/29(月) 16:23:55.26ID:NQQqCKG9
↓このような処理があった時にbutton1を押して無限ループのタスクを実行した後に
button2のクリックイベントからtaskを止める方法ってありますでしょうか?どなたか教えてください

Task task;
private async void button1_Click(object sender, EventArgs e)
{
task = doTask();
}
private async Task doTask()
{
await Task.Run(() =>
{
while (true)
{
// 無限ループ
}
}
}
private async void button2_Click(object sender, EventArgs e)
{
// ここでtaskを止めたい
}
2017/05/29(月) 16:29:32.48ID:lQKC7nKu
>>611
フラグ作って無限ループ中にチェック
button2のクリックでフラグセット
2017/05/29(月) 16:38:30.94ID:KWmGTlOy
>>611
C#だとCancellationTokenSource ってのを使うのが定石だね
詳しくはwebで
2017/05/29(月) 16:57:00.21ID:XexF9nJM
>>611
こういう場合、無限ループの中でどんな処理を行う予定なの?
2017/05/29(月) 17:10:58.74ID:pjx27QrG
>>611
外側から強制的に止めたいとか思ってるならその発想は危険な考え違い
616デフォルトの名無しさん
垢版 |
2017/05/29(月) 17:31:52.87ID:NQQqCKG9
>>612
ボタン2はタスクを止める処理と書きましたが
実際にはonとoffの処理を兼ねているので
フラグを使った制御を行うと、例えばボタンを連打した時におかしな挙動なってしまうような気がします。

>>613
CancellationTokenSource ってタスクの中から制御するのかとおもってたのですが
外からでも制御できるんですね。調べてみます。

>>614
スクレイピングです

>>615
ちょっと気になるのでもう少しだけ詳しく教えて頂けますでしょうか?
2017/05/29(月) 17:49:34.30ID:pjx27QrG
>>616
普通に考えれば、ループを抜けるにはループの継続条件がfalseになるように変えてやるだけ

それなのに>>611みたいな質問をするのは、制御構造を無視して強制終了したいとか
考えてるんじゃないかという印象を持った。

普通はそんな必要はないよね。
そんな必要があるのは、デッドロックするバグがある、ソースをいじれないライブラリを利用する時ぐらい。
2017/05/29(月) 17:56:22.13ID:guqVR5DS
適切な処理をせずにスレッドを強制的に止めるのは設計がよくないという話、まあ気持ちは分かるけどね
2017/05/29(月) 18:00:17.76ID:cnTBcIoG
その前に終了処理したいのか一時停止したいのかで変わるだろうな
2017/05/29(月) 18:00:51.67ID:oHsWfsZc
>>617
Waitで長時間待ったりしてることもあるから、
こういうのはキャンセルで止めたほうが確実だよ
621デフォルトの名無しさん
垢版 |
2017/05/29(月) 18:15:18.42ID:NQQqCKG9
皆さんありがとうございました
フラグで制御すると無限ループ内のいたるところでgoto文を書かなきゃ行けないので
まずいかなと思っておりました
やっぱりキャンセルで止める方法を調べてみます。
たくさんのご意見大変参考になりました。ありがとうございました!
2017/05/29(月) 18:32:30.18ID:KWmGTlOy
>>617
フラグじゃHttpClientなんか止まらんでしょ
https://msdn.microsoft.com/ja-jp/library/hh551741(v=vs.118).aspx

CancellationToken 使って止めるのが普通です
2017/05/29(月) 19:24:40.20ID:pjx27QrG
>>622
俺の理解が間違ってるのかな?

確かにCancellationTokenSource使えばユーザーコードなしても実行前のタスクをキャンセルすることは
可能だと思うけど、一旦動き出したタスクを強制終了なんか出来ないと思うけど...
2017/05/29(月) 19:30:56.57ID:cnTBcIoG
外部exeとかもそうだけどキャンセルするからといってプロセスをすぐ殺す必要はないんだよな
>>623
安全に中断とかでなく止められれば何でもいいんだろ
質問者はもういないしスレ違いの方に行きそうだからその辺でやめてくれ
2017/05/29(月) 19:33:24.08ID:HUcfMRFq
>>623
俺も強制終了はされないという認識
タスク内のコードがトークンのキャンセルフラグチェックして終了処理をする必要があると思ってる
626デフォルトの名無しさん
垢版 |
2017/05/29(月) 19:52:24.02ID:NQQqCKG9
質問者です

強制終了させる必要はなかったので
結局キャンセル入れてタスクのループから抜けるということにしました
↓一部抜粋ですが以下のような感じです。これ便利ですね勉強になりました

Task taskTest = Task.Factory.StartNew(() =>
{
while (true)
{
try
{
cancellationTokenSource.Token.ThrowIfCancellationRequested();
}
catch (OperationCanceledException oce)
{
break;
}
}

cancellationTokenSource.Dispose();
cancellationTokenSource = null;
}, cancellationTokenSource.Token);
2017/05/29(月) 20:24:05.73ID:TtK3Weat
例外投げるのって結構コストがかかるんだよな
それでもループ抜けるのに例外使う利点って何か教えて
2017/05/29(月) 20:30:33.89ID:UcFdrNFR
カッコいいじゃん
2017/05/29(月) 21:04:57.40ID:KWmGTlOy
>>626
恐らく問題ないと思いますがcancellationTokenSourceの後処理はfinally{}の中でやると尚良いですね

>>627
try catchを使えば、深い階層でも一気にcatchまで戻ってこられるので、キャンセルなど残りの処理をブッチするのに非常に都合がいい
キャンセルの処理だからこの程度のコストは考えなくてもいいからね
どうしても例外が嫌なら、CancellationTokenのフラグを見て戻る方法もあります
2017/05/29(月) 22:15:44.46ID:cP3symFG
>>623
Waitを潰せるから結果的にすぐ止まるんだよ
スレッドのInterruptと一緒だ
2017/05/29(月) 23:57:03.22ID:pjx27QrG
>>630
よく分からんなあ
http://qiita.com/laughter/items/75d943bb6d73a9796e58
この記事間違ってるのかね
2017/05/30(火) 00:17:48.17ID:7mmlzI+/
>>631
Thread.Interruptと一緒ってのが間違い。
その記事にあるように、対応メソッドだけキャンセル出来る。
Thread.Interruptみたいに無理やり止めるわけじゃないから、こっちのが安全。
2017/05/30(火) 00:28:00.84ID:7mmlzI+/
>>631
最近追加されたメソッドはCancellationTokenに対応したものが多いよ。
それらを使って組めば、タスクをすぐに止められる。
634デフォルトの名無しさん
垢版 |
2017/05/30(火) 00:30:40.38ID:iGfRfCvW
>>631
リンク先のコードは試すまでもない意味不明なプログラムだな
CancellationTokenでのキャンセルは自分でTokenを監視してキャンセル処理を書かないと何もしてくれない
Task作るときに渡しといたからって中断処理をしてくれるわけじゃない
だからこの結果は当たり前

CancellationTokenに対応してるメソッドはTokenを監視してその処理固有の何らかのキャンセル方法を使って処理をキャンセルしてる
Thread.Interruptとは違う
2017/05/30(火) 01:29:56.07ID:9DtCQxQF
>>612で良かったじゃんな
2017/05/30(火) 01:40:24.01ID:yo83A8ao
>>632-634
だから汎用性はないし、単純なループを抜けるだけなら
コードが複雑になるだけで単純にループの継続条件を操作する方法以上にメリットが
存在するケースはむしろ限られるわけで、>>611に勧めるのは不適切だと思うけど
2017/05/30(火) 02:03:42.90ID:7mmlzI+/
>>636
>>611の無限ループの中身がスクレイピング(>>616)って書いてあるんだから、意味あるでしょ。
HttpClientはCancellationTokenに対応してるんだから。
>>633に書いた通り、最近追加されたのは対応してるの多いよ。
2017/05/30(火) 02:06:44.79ID:yo83A8ao
>>637
あ、なるほど納得w
こんな時間にどうも
2017/05/30(火) 07:06:41.02ID:3LKQdhjH
>>612で良かったじゃんな
2017/05/30(火) 08:10:12.34ID:nt0s20eG
>>632,634
InterruptはSleepやロックを潰すだけだよ
従来Interruptで止めていたようなケースでは、自分でトークンの明示的なチェックなんていらなくて
呼び出し先の時間のかかるメソッドにトークンを適切に引き継ぐだけでいい(キャンセルされたら例外で止まるから)
基本的にスレッドをブロックするだけの同期処理とは違って、
async/awaitの場合は「待ち方」が実装に依存するので、最終的に「待っている」ところに限って
実装者がキャンセル処理を個別に実装する必要がある
そこ以外での扱いの考え方は基本的にはInterruptと変わらんよ
2017/05/30(火) 08:36:57.90ID:nt0s20eG
CancellationTokenの引き継ぎって明示的に渡さなくてもいいように実装できなかったのかな
一番深いところで例外を発生させるという、たかがそれだけのために途中の全てのメソッドに引数を追加しなきゃいけないのはイケてない
コンテキストを跨るから単純なスレッドローカルじゃ駄目なのはわかるけど、
そこだけSynchronizationContextみたいに手動でstaticプロパティから取ってきて明示的に引き継げばいいだけじゃないのか
それとも意図的に途中で連鎖を切るようなケースを想定してるのかな
2017/05/30(火) 08:50:03.66ID:nt0s20eG
あーでもキャンセルのハンドリング自体が非同期で行われるようなケースまで想定すると、
トークンをスレッドローカルにしたら無関係な他のジョブにまでキャンセルが伝播してしまうケースがあり得るね
やっぱりダメだな
2017/05/30(火) 09:01:41.80ID:+3RQshmo
>>612で良かったじゃんな
2017/05/30(火) 09:36:50.58ID:4zyQHZTY
>>643
良くないよ
呼び出した先のメソッドをどうやって止めるつもり?
そうやって、よくある止まらない停止ボタンが出来上がるんだよ
2017/05/30(火) 10:23:05.72ID:22c10yuY
>>644
それは別の問題だろ
2017/05/30(火) 10:34:03.46ID:22c10yuY
呼び出した先のメソッドの止め方が分からないだけで
フラグでいいよ
2017/05/30(火) 11:47:54.70ID:27U6uUbR
スクレイピングの処理時間の大半は、レスポンスが返ってくるのを待つ時間と受信処理
CancellationTokenならそれを中断できるけどフラグ処理じゃ手も足も出ない

まあ作っても役立たずのゴミクズボタンが出来るだけだな
2017/05/30(火) 13:19:04.25ID:iGfRfCvW
>>640
従来Interruptで止めてたケースってなんだよ
ここでやってるスクレイピングのためのネットワーク処理はInterruptじゃ止まらないよね?

InterruptとCancellationTokenの類似性って見た目何らかの処理を中断して戻れるってだけでしょ、そんな事は指摘するまでもないし
それ以上は内部実装なども全然違うものだよ

もっと言うとCancellationTokenはキャンセル処理を統一的に扱うインターフェースでInterruptはその実装の一つと見れる
しかしCancellationTokenの実装としてスレッドのInterruptを使っているものは少なくともIO処理ではないでしょう
実際FileStreamのキャンセル実装はwin32apiのCancelIoEx使ってたし
ネットワーク系のもそんな感じでしょ
2017/05/30(火) 13:27:52.68ID:yiTLmUbP
>>647
それと611の処理となんの関係があるの?
650626
垢版 |
2017/05/30(火) 14:31:20.95ID:Wk6Gc0Fl
昨日はタスクのキャンセルの件ありがとうございました。大変助かりました。

そして、また連日の投稿となってしまい申し訳ありませんが
現在また原因不明の現象に悩まされていて困っております。
もしよかったらどなたか解決して頂けませんでしょうか?

seleniumを使ったプログラムなんですが
一度遷移先でタイムアウトが発生してしまうと
それ以降別ページへの遷移ができなくなってしまうというものです。
そもそもなんでタイムアウトを設定しているかというと
重たいページであっても一定時間すぎたら無条件で次ページへ遷移してほしいからです
どなたか解決方法がわかる方お答え頂ければと思います。

ソースは以下のような感じです

webDriver = new ChromeDriver();
// タイムアウトを2秒に設定
webDriver.Manage().Timeouts().SetPageLoadTimeout(TimeSpan.FromSeconds(2));

foreach (string UrlString in UrlList){
try
{
webDriver.Navigate().GoToUrl(UrlString); // 一度タイムアウトが発生すると次回以降遷移出来ない
}
catch (OpenQA.Selenium.WebDriverTimeoutException) { }
}

※UrlListには適当なURLがいくつかはいっております
度々すみませんがどうぞよろしくお願いします。
2017/05/30(火) 14:47:13.92ID:4zyQHZTY
>>649
関係ないと思うなら多分君はキャンセルフレームワークの使い方を勘違いしてるんだろうな
CancellationTokenは同じものを引き回して使うの
受け取ったCancellationTokenを呼び出し先のメソッドにそのまま渡すことで、
キャンセル要求時に処理がどのメソッドにあったとしても関係なく例外を起こして潰すことができる仕組みだ
2017/05/30(火) 14:57:38.82ID:yiTLmUbP
>>651
そんな仕組み誰も提供して欲しくないと思うわwww
653626
垢版 |
2017/05/30(火) 15:23:37.93ID:Wk6Gc0Fl
自分の質問のせいで争いが起こってしまうとは・・・
申し訳ないです。。
2017/05/30(火) 15:50:05.28ID:r/CU7EmN
気にすんな

タイムアウトしたら次、ってことはCookieの引き継ぎとかどうでもいいってことになるけど
それなら新しくChromeDriverをnewするって雑なやり方は?
2017/05/30(火) 16:48:13.36ID:Wk6Gc0Fl
はい、クッキーはどうでもいいです
ただchromedriverをnewするとブラウザが新たに立ち上がっちゃうのでなるべく同じブラウザのまま対応したいです
2017/05/30(火) 18:28:13.59ID:nt0s20eG
>>655
それだけが理由ならPhantomJS使えば済む話じやね
657デフォルトの名無しさん
垢版 |
2017/05/30(火) 19:00:00.41ID:9pAG49er
あの…WPFとUWPはどっちが速いですか?
優秀な方教えてください
2017/05/30(火) 19:01:21.46ID:Z7PF006I
>>657
form最強
659デフォルトの名無しさん
垢版 |
2017/05/30(火) 19:01:55.63ID:9pAG49er
>>658
エェッo┤*´Д`*├o
2017/05/30(火) 19:09:08.93ID:27U6uUbR
>>657
UWPが桁違いに早い。特に起動時
661デフォルトの名無しさん
垢版 |
2017/05/30(火) 19:10:38.44ID:9pAG49er
>>660
起動確かに速いな
常にスタンバってるのかな
2017/05/30(火) 19:18:21.10ID:27U6uUbR
>>661
.netと違って、ライブラリの中で使うクラスだけ抽出してスタティックリンクするから
ロードするサイズが全然違いますね
2017/05/30(火) 19:22:45.51ID:5LsaYMbU
ある意味「石器」最強かもねw
2017/05/30(火) 19:24:02.22ID:Q5Vu0cbW
>>656アプリに色々スクレイピングしたデータを表示させたいんです
665デフォルトの名無しさん
垢版 |
2017/05/30(火) 19:27:03.66ID:9pAG49er
>>662
ほえー
アプリ開発者と関係なくUWPがそういう仕組みになってるってこと?
2017/05/30(火) 19:27:17.24ID:nt0s20eG
>>664
それとPhantomJSじゃ駄目というのとがどう繋がるのか分からん
ブラウザも表示しておく必要があるのか?
667デフォルトの名無しさん
垢版 |
2017/05/30(火) 19:28:41.25ID:9pAG49er
>>650
お前エロ動画自動収集作ろうもしてるだろ
俺にはわかるぞ
2017/05/30(火) 19:33:16.73ID:Q5Vu0cbW
>>666
PhantomJSからwindowsアプリにデータの受け渡しをすればいいって事ですか?
タイムアウトの問題を解決するためだけなのにすごく二度手間な事してるような気がしてしまいますが・・・
2017/05/30(火) 19:34:33.06ID:Q5Vu0cbW
>>667
いえ違います
2017/05/30(火) 19:40:27.25ID:27U6uUbR
>>665
まあそんなところ。その他.net nativeだから、ライブラリもCLiじゃなくて普通のバイナリだから立ち上がった後の反応も全然違いますよ
2017/05/30(火) 19:42:58.08ID:n5zRqOxX
UWPは起動は遅いだろ
くるくるばっかしてる
672デフォルトの名無しさん
垢版 |
2017/05/30(火) 20:29:50.15ID:PLPV+qTT
class ClassA
{
public override bool Equals(object obj)
{
if (this == obj)
{
return true;
}
else{
return false;
}
}
public override bool GetHashCode() { }
}

static void Main(string[] args)
{
ClassA a1 = new ClassA();
ClassA a2 = new ClassA();
bool b = a1.Equals(a2);
}

GetHashCodeなしだと警告がでるんですが、この場合GetHashCodeのコードはどう書けばいいでしょうか?
2017/05/30(火) 20:48:23.05ID:nt0s20eG
>>668
いやブラウザが開くのが嫌ならヘッドレスなドライバを使えばいいだろと言ってるだけなんだが
2017/05/30(火) 20:53:25.27ID:sRXo2Yu8
>>672
コンストラクタで乱数生成してそれ使ったら?
2017/05/30(火) 21:27:08.94ID:/DgUh2Dj
>>672
とりあえず動けばいいだけなら
public override int GetHashCode() {
return 1;
}
でもいい
http://blog.masakura.jp/node/35
2017/05/30(火) 22:40:18.35ID:GhBAathx
便乗で質問だけど、オブジェクトの等価検査で使われる値が変化した時は
ハッシュコードも変えないとまずいよね?
2017/05/30(火) 22:43:36.35ID:kWERrntF
>>676
変えなくてもハッシュテーブル系のパフォーマンスが落ちるだけ、それで使わんなら適当でいい
678デフォルトの名無しさん
垢版 |
2017/05/30(火) 23:44:25.77ID:PLPV+qTT
>>674 >>675
お2人のレスでGetHashCodeがintを返すものだと気づきました。
いろいろ漁ってみたんですが、this.GetHashCode()の方が1より速いみたいなんでこれで行こうと思います。
レスありがとうございました。
679デフォルトの名無しさん
垢版 |
2017/05/31(水) 00:37:06.72ID:lBEWYtx2
Formアプリで登録リスト一覧みたいなものを表示させたいんですが、DataGridViewみたいな感じにしたい時は何を使いますか?
2017/05/31(水) 01:04:50.93ID:XimrquBh
DataGridView
2017/05/31(水) 01:46:52.64ID:zMZ0t3dm
意図が全く分からん
2017/05/31(水) 02:01:48.65ID:toHF4qpw
マジキチ
683626
垢版 |
2017/05/31(水) 05:04:07.36ID:zbjxMbd2
>>673
いえブラウザが開くのは問題ないんですが
タイムアウトが発生するたびにブラウザを開き直すのはちょっと問題があります
なにか他に方法があればいいんですが・・・
2017/05/31(水) 06:29:23.93ID:+xjBJZk4
>>683
対象のページを手動で開いてるってことか?
2017/05/31(水) 06:30:10.04ID:+xjBJZk4
>>683
対象のページを手動で開いてるってことか?
2017/05/31(水) 06:39:24.23ID:zbjxMbd2
すいません質問がかなり流れてしまってるのでもう一度書かせていただきます

seleniumを使ったプログラムなんですが
一度遷移先でタイムアウトが発生してしまうと
それ以降別ページへの遷移ができなくなってしまって困ってます
そもそもなんでタイムアウトを設定しているかというと
重たいページであっても一定時間すぎたら無条件で次ページへ遷移してほしいからです
どなたか解決方法がわかる方お答え頂ければと思います。

ソースは以下のような感じです

webDriver = new ChromeDriver();
// タイムアウトを2秒に設定
webDriver.Manage().Timeouts().SetPageLoadTimeout(TimeSpan.FromSeconds(2));

foreach (string UrlString in UrlList){
try
{
webDriver.Navigate().GoToUrl(UrlString); // 一度タイムアウトが発生すると次回以降遷移出来ない
}
catch (OpenQA.Selenium.WebDriverTimeoutException) { }
}

※UrlListには適当なURLがいくつかはいっております
度々すみませんがどうぞよろしくお願いします。
2017/05/31(水) 09:22:20.58ID:7bh7QxEt
>>667
俺の時代はjpeg画像だったわ
688デフォルトの名無しさん
垢版 |
2017/05/31(水) 10:03:22.46ID:bfprNrby
お世話になります。
ある二次元のArrayListがありまして、
そのArrayListのある1行だけをまるまる別のListへコピーしたいのですが、
色々調べても書き方がわかりませんでした。
どのように書けば良いのでしょうか。

型は全要素がstringになっているという前提で良いです。
2017/05/31(水) 10:10:44.40ID:bfprNrby
688ですが、一旦質問を取り下げます。
二次元のArrayListではなくて、string配列のArrayListでした。
頭の中を整理してからまた質問させていただきます。
2017/05/31(水) 11:11:33.20ID:YxSv7yTD
Comparison<T>をIComparer<T>に変換する機能って用意されてないよねやっぱり

デリゲートは拡張メソッドも変換演算子も定義できないし、古典的なユーティリティークラスで
やるしかないのかな
691デフォルトの名無しさん
垢版 |
2017/05/31(水) 11:41:32.37ID:vbSdRoYa
そういうライブラリを探す手間が大変
高級言語ってそれが面倒
最初っから当てにしない方が精神的に良いのがわかってても
あるはずだと思って探す
2017/05/31(水) 14:16:43.04ID:Z1ZTId/u
>>690
ん?
public static IComparer<T> ToIComparer<T>(this Comparison<T> cmp)
って定義できたし呼び出しもできたけど VS2015
2017/05/31(水) 15:14:41.46ID:SYDtjKSh
あれ、デリゲートの拡張メソッドって定義できないと思い込んでたけど勘違いか。
ジェネリックの制約か何かとごっちゃになってたかな
2017/05/31(水) 15:17:45.21ID:YmmFUVDx
そんなことするより普通にnew MyDelegateComparer(comparison)でいいだろ
変なごちゃ混ぜユーティリティクラスに依存するよりよっぽどマシ
695686
垢版 |
2017/05/31(水) 15:44:13.55ID:zbjxMbd2
ここでもだれもわからないんですね・・・
どうすればいいんだろう・・・
2017/05/31(水) 15:53:10.88ID:RyxKgJ03
人生の無駄だと気付け
697デフォルトの名無しさん
垢版 |
2017/05/31(水) 19:20:18.69ID:EmdHwMni
Null許容型の話ししてもいいですか?
2017/05/31(水) 19:25:07.13ID:pBTVyMi8
駄目だと言ったらどうする!
2017/05/31(水) 20:58:06.31ID:P4eqmxhP
ASP.NET Identityって要するにユーザー情報やロール情報のリポジトリを注入するだけで認証処理が機能するようになるよって感じ?
2017/05/31(水) 21:18:26.40ID:rluwNjli
>>689
ArrayListは過去の遺物だ。
新規で作っているならList<T>を使った方が良い。
2017/05/31(水) 21:36:24.45ID:PjLtCLFm
いつも思うけど、こういう奴誰に向かって威張ってるつもりなのかね
っていうかそれがそんな偉そうに言うような話かw
馬鹿じゃねえのほんっと
2017/05/31(水) 21:38:57.89ID:L1juUrGR
>>700
arraylistを使うとどんなデメリットが有るの?
2017/05/31(水) 21:48:30.04ID:QtUbvsGm
>>702
要素にどんな型でも放り込めてしまう
2017/05/31(水) 21:50:42.84ID:rluwNjli
>>702
Object型で格納されるから参照する時にキャストが必要。
後、値型だとボックス化が起きる。
2017/05/31(水) 21:58:14.69ID:L1juUrGR
>>704
すいません、ボックス化ってなんですか?
2017/05/31(水) 22:01:37.80ID:lqV8qj25
>>705
https://www.google.co.jp/search?client=android-asus&;ie=UTF-8&source=android-browser&q=ボックス化&gfe_rd=cr&ei=b74uWdaaIabz8AeGtomgCg
2017/05/31(水) 22:16:20.70ID:rluwNjli
>>705
ボックス化とボックス化解除 (C# プログラミング ガイド)
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/types/boxing-and-unboxing

要は、値型をObject型に変換するとパフォーマンスが悪い。(その逆も)
2017/05/31(水) 22:22:39.78ID:bj9JDDoN
以下のようなコレクションから、プロパティ「name」「no」が重複しているオブジェクトを全削除したいのですが
Linq等で短いコードで書けそうだなと思いながら、いざ考えてみるとやり方が思い浮かばず困っております
よろしくお願いします

public class TestStore
{
public string name { get; set; }
public int no { get; set; }
public int noctl { get; set; }
}

class Program
{
static void Main(string[] args)
{

List<TestStore> list = new List<TestStore>();
list.Add(new TestStore { name = "hoge",no=2,noctl=999});
list.Add(new TestStore { name = "hoge", no = 2, noctl = 888 });
list.Add(new TestStore { name = "fuga", no = 1, noctl = 888 });

      //プロパティ「name」「no」が重複するオブジェクトを削除する処理
//最終的にはname = "fuga"だけが残っているイメージです

}
}
2017/05/31(水) 22:24:50.71ID:ne18o3PY
>>708
あのさ
自分でもわかんねーコード
人にどうやって読んでもらうの?
少なくとも初心者スレで聞くのはやめろ
2017/05/31(水) 22:27:06.86ID:L1juUrGR
>>706、707
ありがとうございました。
2017/05/31(水) 22:27:16.87ID:ne18o3PY
linq友の会スレでも行けよ
2017/05/31(水) 22:42:27.39ID:P4eqmxhP
>>708
list.GroupBy(x => new { x.name, x.no })
.Where(x => x.Count() == 1)
.Select(x => x.First())
2017/05/31(水) 22:58:48.07ID:bj9JDDoN
>>712
期待通りの結果が出ました

なぜ上手くいくのかメカニズムが解らないので
参考にさせて頂きます

やはり出来る人は凄いですね

ありがとうございます
2017/05/31(水) 23:01:16.13ID:QtUbvsGm
>>709
( ´,_ゝ`)プッ
2017/05/31(水) 23:04:44.02ID:KM4I6X6v
>>709
解らないなら黙ってスルーして良いんだぜ?な?
2017/05/31(水) 23:18:52.50ID:PjLtCLFm
匿名型ってEqualsも自動実装されてるのか
知らんかった
2017/06/01(木) 00:42:51.33ID:mM6BhS1s
改めて思ったけど、IEquatable<T>とIEqualityComparer<T>の関係って
なんだかわかりづらいな。

IEquatable実装したらGetHashCodeもオーバライドしろっていうのなら
IEqualityComparerだけあれば十分じゃないのか
2017/06/01(木) 01:35:28.25ID:ludZVk+R
コンパレータ渡さ(れ)なくても比較したいことは多いだろ
2017/06/01(木) 01:39:00.91ID:ZOQStLdx
>>717
IEquatable<T>は値型に実装するもので、参照型に実装する意味はないよ
一種のマーカーインターフェイスみたいなもんで、これがあることによって
値型のときEqualityComparer<T>.Defaultなどでボックス化を回避することができる
2017/06/01(木) 02:01:45.31ID:ZOQStLdx
>>718
EqualsやGetHashCodeはObjectのメソッドなんだから常に等値比較は可能なはずで、なのになんでインターフェイスが必要なのかが質問者の疑問なんじゃないの?
その疑問はもっともで、実際、非ジェネリックなIEquatableって存在しないでしよ
等値比較できることを示すというよりは、型限定なEqualsの実装を持ってることを保証するためのインターフェイスなんだよ
2017/06/01(木) 02:23:40.58ID:ldik7UUC
>>713
なぜうまく行くのか自分でもわからんコード仕事で書きたいんだな
アホだな
お前がうまく行くことを祈る
2017/06/01(木) 02:31:26.88ID:5sVH+pSJ
煽るために産まれたのか悲しい子よ
2017/06/01(木) 02:33:53.74ID:EL41vKcx
>>721 == >>709
2017/06/01(木) 03:49:27.04ID:aKp9LbeA
C# で 6乗したら100になる数字を求める方法ってありますか?
で、プログラムで 6とか 100の部分を可変で入れ込む関数を作りたいのです。
よろしくお願い致します。
2017/06/01(木) 04:27:00.57ID:EL41vKcx
>>724
単に Math.Pow(100, 1/6) でいいと思いますが
2017/06/01(木) 04:45:54.50ID:ldik7UUC
数学的には指数と対数の関係式とか言うとこだな
2017/06/01(木) 05:26:56.81ID:ldik7UUC
>>725
累乗根ってそれで行けるんだ
2017/06/01(木) 06:53:06.02ID:rOL2FVf4
>>724
そんな数字求めて何に使う?
2017/06/01(木) 07:01:20.29ID:ldik7UUC
桁数に合わせた表示領域の計算とかするのに必要だった気がする
2017/06/01(木) 08:08:40.56ID:YbQp1MN1
>>729
それは Log10 の方だろ
巾乗根なんて日常生活だと複利計算ぐらいしか思い付かんが6年で100倍なんてあり得んし w
2017/06/01(木) 09:24:36.49ID:ABXdazBj
音つくるんかな
2017/06/01(木) 10:11:36.56ID:ZOQStLdx
工学系なら普通にあるだろうけどさすがに724は理系ではなさそうだし
2017/06/01(木) 10:43:13.05ID:RLRug1po
>>726
対数は関係ないよw
x^a^b = x^(a*b)
こういう理屈
2017/06/01(木) 11:01:21.36ID:sVwWAQG0
クラスの中にスタックを持たせたい場合、どう書くのが正しいんでしょうか。
class Solution {
private Stack<char> st = new Stack<char>();
Solution() {
}
public void pushCharacter(char c) {
st.Push(c);
}
場当たりでこんな書き方をしましたが、とても汚く感じます。
2017/06/01(木) 11:05:21.05ID:MxLX2EtY
それを汚く感じる完成が分からん
2017/06/01(木) 11:22:25.63ID:bvaaJ1gb
>>734
可読性とかはその人の感性によるものだから君が汚いって言っても他人にはよくわからんかもしれん
もっと具体的に何がどう気に入らないのか説明してくれんと要件満たしてるんだしそのコードでいいじゃんとしか言えない
2017/06/01(木) 11:34:56.00ID:8D8uwWqC
>>733
いや手持ちの数学の教科書の項目の話だった
2017/06/01(木) 11:37:26.68ID:8D8uwWqC
>>733
でも指数法則でそんなのあったっけ?
2017/06/01(木) 11:46:48.93ID:aKp9LbeA
>>725さん
できました!ありがとうございます!

>>728さん >>731さん
お察しの頂いた通り 音関係です。
C#も数学もレベルが低いので苦労しております。

皆様ありがとうございました。
2017/06/01(木) 11:49:39.28ID:sVwWAQG0
>>735-736
class Solution {
private Stack<char> st;// = new Stack<char>();

Solution() {
st = new Stack<char>();
としました。
汚く感じるというのは、変数を宣言している所で割り当てするのは変なんじゃないかなと思う、ということです。
変なこと書いてすみませんでした。
2017/06/01(木) 11:55:59.28ID:6PQ5fYPl
フィールドの初期化位置で悩むのはふらっとあるある
2017/06/01(木) 11:58:57.49ID:bvaaJ1gb
>>740
宣言と初期化を一緒にするか別にするかはそんなに綺麗汚いに影響しない感じするなー
個人的には統一されてりゃ良いと思うけど
varのこと考慮すれば宣言時初期化のほうが楽なんじゃないかな?ってちょっと思うくらい
(確かメンバ変数もvar使えるようになったよね?)
2017/06/01(木) 12:18:08.67ID:RLRug1po
>>740
むしろ初期化できるものは積極的に宣言時に初期化しなきゃ

>>934のコードで疑問に感じる点があるとすれば、スタイルがC#じゃなくてJava
になってる点を除けば、pushCharacterなんていう、スタックを意識させるようなメソッド名が
本当に適切かどうかかね

適切かどうか(そのメソッドを使う時にそれがスタックに対するpushであることを意識する必要があるのか)
はそれだけの情報からは分からないけど、仮に意識する必要がないのであれば
そのメソッド名は考え直した方がいいかもしれない
2017/06/01(木) 12:43:17.65ID:wFAG8npl
>>739
セント計算を20年ぐらい前にした覚えがあってね
2017/06/01(木) 13:09:43.89ID:8R6JhoZ8
>>742
メンバ変数にvar使えるようになったってマジ?
聞いたことないんだが
2017/06/01(木) 13:19:28.65ID:ZOQStLdx
フィールドは基本的にreadonly + 宣言時代入
どうしてもreadonlyにできない場合は宣言時代入はまあどっちでもいいと思うよ
ミュータブルなフィールドを宣言時代入するのは意味的に紛らわしいと感じる人もいるはず
747デフォルトの名無しさん
垢版 |
2017/06/01(木) 13:59:13.59ID:ZI/846Hh
すみません。質問です。

通常のメソッドから非同期メソッドを呼びだす時の場合です。非同期メソッドは無限ループで非同期受信を待機しています。
(async/await)
この時通常メソッドの中の非同期呼びだしが、await演算子を適用することを検討してくださいと警告をうけます。
非同期メソッドの呼びだしにawaitをつけたほうがいいのでしょうか
2017/06/01(木) 14:23:18.55ID:bvaaJ1gb
>>745
ごめん、記憶違いだったぽい
2017/06/01(木) 15:15:48.27ID:wFAG8npl
ようわからんけど、Clickイベントハンドラにasyncつけるとか?

することあるよ
2017/06/01(木) 15:16:26.73ID:ZOQStLdx
>>747
awaitしないなら戻り値のTaskを受け取って何らか処理しないとタスクが宙ぶらりんになる
結果を受け取る必要がないTaskかあるとしたら、それはあまり良くない設計
2017/06/01(木) 15:16:36.83ID:wFAG8npl
とエスパー
2017/06/01(木) 15:29:47.68ID:JS2ZXwNm
>>747
無限ループじゃなくてawaitで待つほうが健全だね
753デフォルトの名無しさん
垢版 |
2017/06/01(木) 17:37:25.02ID:Biom6P3b
>>747です
レスありがとうございます。何がしたいかというと
誘導失礼します
http://hensa40.cutegirl.jp/archives/1858
これのサーバー側を非同期で常にアクセスを待ち続けたいのですが、色々と例外が発生してうまく組めません。どの様にコーディングすればいいでしょうか。
2017/06/01(木) 18:13:44.67ID:4NZyrsle
>>753
サーバーで複数クライアントからの処理を同時にこなすならawaitしないのは全然普通だよ
コンパイラの警告は基本全部つぶすべきだけどその警告は場合によっては無視していい

複数クライアント対応のサーバー側の処理の骨格は普通以下のような感じ
疑似コードみたいなもんなので当然このままじゃ動かない
さらにclientWorkerで例外が起こった場合を考えるべきだけど
https://ideone.com/Xbn7g0
2017/06/01(木) 18:28:51.20ID:MxLX2EtY
> さらにclientWorkerで例外が起こった場合を考えるべきだけど
なのでawaitじゃなくてTaskのまま受け取ってContinueWithでエラー処理とかする
警告もなくなる
2017/06/01(木) 18:30:24.63ID:ZOQStLdx
>>754
いや複数リクエストを同時に処理するためのasync/awaitだろ
awaitはContinueWithに相当する操作なんだけど、なんか勘違いしてないか
757756
垢版 |
2017/06/01(木) 18:43:42.91ID:l+evRAwn
ああリンク先見たらwhileの中でawaitしないことを言ってたのか
失礼した
2017/06/01(木) 18:45:38.64ID:6PQ5fYPl
async/await使った非同期サーバー作ったけど、ネットにろくな例無くて苦労したわ
未だにこの表記で良いのかと考えるときあるし
759デフォルトの名無しさん
垢版 |
2017/06/01(木) 19:52:33.98ID:9Xkv0h5R
>>754
ありがとうございます
とりあえず以下のような感じでやって動いてはいるんですが、大丈夫でしょうか
ただ、listener.Stop()を実行すると、System.ObjectDisposedExceptionの例外がスローされます
対処方法はどうしたらいいでしょうか

public void ServerStart() {
listener.Start();
LoopTestAsync(); ←警告される
}
public void ServerStop() {
listener.Stop();
}
private async Task LoopTestAsync(){
While (True){
using (TcpClient client = await listener.AcceptTcpClientAsync()) {
clientWorker(client);
}
}
}
private void clientWorker(TcpClient client) {
using (var stream = client.GetStream()) {
IFormatter formatter = new BinaryFormatter();
Class1 c1 = (Class1)formatter.Deserialize(stream);
}
}
2017/06/01(木) 20:05:09.06ID:4R0wfsj/
>>759
当たり前じゃん
無限ループのSTOP処理考えろよ
761デフォルトの名無しさん
垢版 |
2017/06/01(木) 21:26:37.82ID:llpGiASm
iTunes、UWPアプリ化。マイクロソフト本気でストアアプリ強化へ
http://www.ask-mswin.com/news-170513/

これいつだよ
C#で作ってるのかな
2017/06/01(木) 22:00:17.31ID:tw8E59rn
正直、タッチパネル搭載のPC使ってるけどUWPなんてほぼ使ったことないw
これからもまず使わないだろう

モバイルのシェア1ケタのOSのモバイル用アプリなんて生まれる前から死んでいるw
2017/06/01(木) 22:39:29.48ID:PAXTxEs7
私はUWPのEdgeをよく使いますね
2017/06/01(木) 23:36:17.73ID:O9hXITjG
>>762
使っていることに気づいてないだけ
2017/06/01(木) 23:48:05.37ID:tw8E59rn
>>764
んなアホなw
2017/06/01(木) 23:50:53.45ID:O9hXITjG
>>765
設定触ったことないの?
2017/06/01(木) 23:51:25.64ID:EL41vKcx
UWPの電卓アプリ多用してる
2017/06/01(木) 23:52:47.43ID:tw8E59rn
>>766
そういう重箱の隅をつつく話はしてないよww
ほぼ、って言ってるでしょ

それを言うなら、Win8の時代からある立体上海みたいなゲームもやったことあるよw
2017/06/01(木) 23:57:43.40ID:tw8E59rn
っていうか、あの設定画面出てくるとゲンナリするよねw

コントロールパネルと設定画面がどういう基準で仕分けされてるのかさっぱり分からんし、
そうでなくても糞見づらいフラットデザインの画面ってイライラしてくる
2017/06/01(木) 23:57:49.23ID:EL41vKcx
>>768
Windows8はUWP非対応です
2017/06/02(金) 00:01:15.63ID:Ky4OucGy
>>768
UWPはWindows10以降
2017/06/02(金) 00:01:28.76ID:xUiVlsMK
>>768
「これからもまず使わないだろう」って書いちゃったよね恥ずかしいよね

てかなぜUWPの話でWin8が出てくる?
2017/06/02(金) 00:03:26.29ID:GRO2QHjZ
>>768
ろくにUWPを理解していないことが露呈しましたね
2017/06/02(金) 00:05:45.63ID:JeVIxJYz
>>772
幼稚だね。小学生か

普通UWPを使うって言ったらストアからダウンロードして使うか、
少なくとも最初からインストールされているアプリを、他に選択肢があるにも
かかわらずあえて使うことだろう。

Windowsを使う限り使うことがほぼ選択の余地なく不可避のものを
「ほらみろお前使ってるじゃないか」ってそんなこと言って何の意味がある

馬鹿じゃねえの
2017/06/02(金) 00:08:47.18ID:xUiVlsMK
>>774
そんな幼稚なオレオレ定義知らねえよwww
Googleって便利なものがあるからしばらく勉強してこいカス
2017/06/02(金) 00:11:04.54ID:xh/fYt88
>>774の定義ではWindows8はUWP対応なんだってさ
2017/06/02(金) 00:11:17.71ID:v1YzyP4O
空気が悪い
底辺が底辺をあおる
2017/06/02(金) 00:11:20.74ID:JIPxHJG/
>>774
焦点はUWPを使っているか使っていないかであって、ストアだの代替アプリだのは関係ない
無知を晒して恥ずかしいねえ
2017/06/02(金) 00:15:27.76ID:JeVIxJYz
>>778
君のような奴って幼稚な自分が嫌にならないんだから幸せでいいよね。

しかし、いちいち他人の揚げ足をとって言い掛かりをつけないと気が済まない馬鹿って
普段実生活でどういう人生送ってるのかね。
俺ならそういう自分に耐えらんけど

Taptiles(名前忘れてたが)はWin10になった段階でUWPにリメイクされてると思ったけど、
今起動してみたらこれストアアプリのままか、
全画面でないと動作しないのな。
2017/06/02(金) 00:19:06.60ID:L4WeawcR
明らかな間違いなのにそれを指摘されたら揚げ足取りだって喚くとか、こいつ技術者ではないだろ。
ID:JeVIxJYz
2017/06/02(金) 00:19:23.69ID:t1ywd+Cz
呼び方がわからんが、いわゆるMetroアプリは標準を除くとLine、Nebo、Wunderlist、おためしでMicrosoft Todoぐらいか
DesktopConverterだと、CrystalDiskMark、Slack、NuGet Package Explorerかな

と思っていま見たら、楽天カードアプリがあったので入れてみた
こういう、スマホはアプリ、パソコンではスマホみたいになってたやつはUWP出てくるかもしれんね
セキュリティ的にもそのほうが安全だし
2017/06/02(金) 00:22:50.08ID:JeVIxJYz
>>781
知ってるはずだと思うけど、Metroって名称はWin8発売前に撤回されたでしょ
2017/06/02(金) 00:22:55.12ID:v+jfPvQO
>>779
まだ自分が何を指摘されたのか理解できていないようだね、お馬鹿さん
いや、理解したから揚げ足取りだなんてアホなこと言って逃げたのかな?
2017/06/02(金) 00:24:50.18ID:xUiVlsMK
>>782
知ってるはずだと思うけど、UWPってフレームワークはWindows10以降でしょ
2017/06/02(金) 00:24:56.15ID:JeVIxJYz
>>783
幼稚な馬鹿に何を言っても無駄だけど、「ほぼ使ったことがない」という発言をしたのは
俺自身なんだけど。

俺自身がそれをどういう意味で言ったのかを何でお前が決められるわけ?
ほんっと馬鹿にも程がある。しかも幼稚ときてる。
人間として終わってるね。俺がお前なら朝一番で電車に飛び込むレベルで
2017/06/02(金) 00:26:46.04ID:v+jfPvQO
>>785
わかるよ、即効で反例出されて顔真っ赤なんだよね
2017/06/02(金) 00:30:05.10ID:L4WeawcR
>>785
ここは初心者スレなんだから正しい知識を教えられたら素直に受け入れたらいいんだよ
2017/06/02(金) 00:34:20.78ID:JeVIxJYz
>>787
そうだな君が馬鹿で幼稚であることは素直に受け入れてるよ
設定画面がUWPでないと言った覚えも、それを使ったことがないと言った覚えもないけどね。

まあ人間的に幼稚な奴を相手にしても腹が立つだけで得る物がないからこれで終わり
2017/06/02(金) 00:36:25.80ID:xUiVlsMK
>>788
「これからもまず使わないだろう」
2017/06/02(金) 00:42:09.88ID:L4WeawcR
>>788
「それを言うなら、Win8の時代からある立体上海みたいなゲームもやったことあるよw」
2017/06/02(金) 00:59:47.69ID:t1ywd+Cz
>>782
それはわかってるんだけど、Desktop Converterの登場でなんて呼べばいいのかわからなくなってしまった
非Desktop ConverterのUWPだけを指す呼び名って公式でなんかあったっけ?
2017/06/02(金) 02:13:44.08ID:m+CzDqBW
幼稚幼稚うるせーぞ
例外ちゃん
2017/06/02(金) 02:23:04.41ID:uW9UgDbU
>>789-790
横からマジレスすると
もうオワコン過ぎて絶対増えて行かないと思うよ

どうしたんだろうね
昔は書籍とかたくさん書く人いたのに(普及するようにお金撒いてたんだと思うけど)
今じゃそれもなくなってな
2017/06/02(金) 02:30:57.84ID:xUiVlsMK
>>793
論点はそこじゃないぜ…
2017/06/02(金) 02:55:25.77ID:uW9UgDbU
>>794
完全に消滅状態のUWPになにか主張したいことがあるの?
2017/06/02(金) 02:59:34.63ID:xUiVlsMK
>>795
流れを一切無視したこと言われてもな
2017/06/02(金) 03:00:46.29ID:3kUr2HLm
>>793
マジレスと称してまたトンチンカンなこと言い出しててワロタwww
2017/06/02(金) 03:02:44.75ID:uW9UgDbU
>>796
なんで?
uwpについてなにか言いたいことあったんじゃないの?
ないならもう完全消滅で全会一致ってことでもうこの話題はいいよね?
あとは誰の発言がどう補正されようが完全消滅の事実は消えないんだからすべてが誤差
2017/06/02(金) 03:05:16.61ID:uW9UgDbU
別にこの話題を続けたいならいかにuwpがオワコンであるか俺のリサイタルを聞きたいと言うならそれでもいいよ
2017/06/02(金) 03:06:13.55ID:xUiVlsMK
>>798
どこを読んだらそうなるんだ?
お前も即効で反例出されて逆ギレしてたキチガイの仲間か?
2017/06/02(金) 03:07:27.67ID:3kUr2HLm
>>799
こいつ話題を反らしたいだけやろ
2017/06/02(金) 03:14:41.89ID:uW9UgDbU
>>800
だからどうでもいいって
どうせ誤差だし
2017/06/02(金) 03:15:35.80ID:uW9UgDbU
>>801
uwpから?www
uwpオワコンネタは俺の大好物だからね
2017/06/02(金) 06:02:50.87ID:71uuKlN0
UWPなんて触る機会来るのかな
うちはレガシーの保守拡張がメインの三流企業だから
やるとしても5年後、10年後とかになるかもしれないな
ドキュメント残しておいてくれよ
2017/06/02(金) 11:09:58.88ID:u+O9r2nk
現場によるとしか
もしくは自分から起業
2017/06/02(金) 13:14:29.51ID:CcFW0hD0
2020年のWindows7終了祭りでWindows10が標準になれば
圧倒的なスピード差でUWP採用されやすくなるだろうね
今でもGUI部品は圧倒しているし、.net Coreが充実してくれば入れ替わるな
2017/06/02(金) 13:20:01.12ID:ypE5LaWl
>>806
あ、デジャヴwwww

なんのときだっけ?それ
結局.net framework 2.0のままだけどな!
2017/06/02(金) 13:51:22.16ID:89fS7Hhn
>>806
WPF「…俺たちは?」
UWP「…実験台?」
真のユニバーサルアプリ「旧世代のゴミどもめ!!」
2017/06/02(金) 14:06:27.38ID:PwRFjZu6
Win8ストアアプリはWin8.1出た時切り捨てて、Win8.1ストアアプリはWin10出た時に切り捨ててるからね。。。
せいぜい2010まで切り捨てないで欲しいわ。

それまでは信用出来ない。
2017/06/02(金) 14:17:18.60ID:4dlEWjvI
>>809
ha?
2017/06/02(金) 14:34:28.02ID:PwRFjZu6
Win8.1出たらWin8ストアアプリ新規で出せなくなったりね。
開発する側は開発環境新しくするだけだけど、雇ってる企業はその度に買い直しを迫られたろうし、一番可哀想だったのはストアアプリのプログラミング本出してた出版社だったな。
あんなにコロコロ変えられたら出版費用回収出来なかったろう。
2017/06/02(金) 14:51:07.39ID:bsjc0qn7
ペゾルドもUWPの本は書いてないw
さすがにふざけるなってなるよねw
2017/06/02(金) 14:52:11.67ID:8BngMUPO
>>809
2010ってどういうこと?
2017/06/02(金) 15:39:57.73ID:89fS7Hhn
2020年って事かな
2017/06/02(金) 15:50:00.22ID:PwRFjZu6
あ、2010は2020のタイポ。
失礼。
2017/06/02(金) 16:40:53.25ID:IXIbWrVF
silverlightの代わりの話ですが
2017/06/02(金) 18:42:49.51ID:S/qmGr4o
Win7以前のフォームアプリすべて切り捨てたら4Kディスプレイでスケーリングがまともに使えるようになるんだがな
2017/06/02(金) 19:00:32.02ID:vakza0ST
>>817
スケなんかできたところで金になんねーだろ
誰が喜ぶんだよ?
入出庫管理アプリ作ったとしてピンチインピンチアウトなんてお客がやると思ってるの?
オメーがエロ画像見てるときぐらいだろそんなの必要なのは
2017/06/02(金) 19:14:55.03ID:DJo44r8c
横からだがスケーリングは高解像度でもフォントが綺麗な方向だと思うぞ。
入出庫管理ならAndroidなりWinなりの8型タブにバーコードリーダー繋げてた方が便利だろ。
今時タブのが高解像度だが、Formsのままだと高解像度だと文字が読みにくい。
2017/06/02(金) 19:21:18.48ID:8OnrstJc
入出庫管理なんかどうせ固定画面なんだからどうでもいい
フォントをでかくすりゃいいだけ
2017/06/02(金) 19:24:01.65ID:o92K2+Vm
>>817
そんなくだらねーもんのためにフォームアプリの全廃を願ってるってのが狂気だよね
2017/06/02(金) 19:37:19.56ID:C+qIFQhN
UWPはC#でありながらC++並の表示速度が有って、
更にソース丸見え問題が仕組み上解決されている
windows10専用が問題なくなる3年後には、
C++を上書きするポテンシャルが有るよ
2017/06/02(金) 19:47:25.36ID:ZAKDk1cn
テンがなくなるとポシャルだと
2017/06/02(金) 19:48:08.14ID:NXEMQO7P
0点
2017/06/02(金) 20:03:40.45ID:xUiVlsMK
>>819
.NET4.7
2017/06/02(金) 20:18:17.15ID:bsjc0qn7
高dpiモニターは医療とヲタ向け以外あんまり需要なさそうな気はするね
コモディティー化したらどうだかわからんが

UWPって現状所詮ストアアプリと同じサブセットじゃん

標準の.NETの方がUWPの要素を取り入れることはあってもUWPが
デスクチップアプリを置き換えるとか100%ないわ
2017/06/02(金) 20:30:24.81ID:C+qIFQhN
>>826
よく分からん。具体的には何の機能が問題無の?
DataGridは買ってくれば問題ないし
2017/06/02(金) 20:35:26.14ID:bsjc0qn7
>>827
いや、UWP勉強してないんでどういうコントロールがあるとか知らんけど、
少なくともライブラリはサブセットでしょ

フルの.NETのライブラリ(BCL)の上位互換じゃないよね
2017/06/02(金) 20:37:39.62ID:8OnrstJc
データグリッド使うようなアプリはWebへ行くわな
今更またいつ投げ出すか分からん新技術に賭けるリスクをペイできない
2017/06/02(金) 20:52:27.48ID:SPpZD+rV
UWPってスタンドアロンなアプリはゲームくらいのもんで、
基本的にはWebサービスのフロントエンドを作ることを想定したプラットフォームだよ
今の時代バックエンドとしてWeb APIがあるのは当然で、
その上で薄い薄い上っ面をUWPで作るかWebブラウザで作るかという程度のどうでもいい話でしかない
WinForms対WPFとかやってた頃とはもうアプリの概念そのものが全然違うのよ
2017/06/02(金) 20:57:45.41ID:bsjc0qn7
なるほどこれからは電卓アプリも端末は画面だけ用意して
実際の演算はネットの向こうに投げるようになるのか胸熱だな
2017/06/02(金) 21:00:17.94ID:SPpZD+rV
>>831
そんな程度の低いアプリは金を産まないから
ビジネス的な観点で言えば無いのと一緒だよ
2017/06/02(金) 21:09:03.94ID:9KYQXn4X
>>830
uwpにwinformやwpfの代わりはできるの?
2017/06/02(金) 21:11:24.79ID:v1YzyP4O
フロントエンドはブラウザのHTML5で決まりみたいなもんだろ
どうしようもないぐらい差がついてる
もう終局してもいいレベルだからな

グラフコントロールすらないUWPに何ができるんだか
2017/06/02(金) 21:13:01.76ID:9KYQXn4X
>>834
いや、なんかmsがuwpで統一みたいなこと言い出したんよ
2017/06/02(金) 21:14:14.05ID:v1YzyP4O
>>835
VB6 winforms webをWPFで統一って言ってたくせに実現できなかったMSが偉そうに
2017/06/02(金) 21:14:44.53ID:lDAi9ezd
雑談は他でやれよ
ここは初心者の質問スレ
2017/06/02(金) 21:31:11.62ID:8GOk0sXV
いやだってこれアプリの製作方針すべてに関わるで
勉強してることが無駄になりかねない
2017/06/02(金) 21:38:59.98ID:8GOk0sXV
【マイクロソフト研究所】Win32からUWPへ――、アプリケーションの移行を進めるMicrosoft - クラウド Watch
http://cloud.watch.impress.co.jp/docs/column/microsoft/1056615.html

問答無用だぞ
2017/06/02(金) 21:41:14.55ID:6KzFniyW
>>838
だったら悪いこと言わないからWebへ行きなさい
あと、アプリ開発だけじゃなくてAWSかAzureを使えるようになっておくといい
引く手数多よ
841デフォルトの名無しさん
垢版 |
2017/06/02(金) 21:56:03.88ID:xX8a8TPA
今後OFFICEの言語もC#になったりするの?
2017/06/02(金) 22:02:54.58ID:xUiVlsMK
>>841
さすがに書き換えるコストに見合わないだろ
2017/06/02(金) 22:16:44.11ID:8BngMUPO
Officeのモバイル版はC#でしょうね
2017/06/02(金) 23:56:38.72ID:puUBGw4G
Officeもなんだかんだでクロスプラットフォームなもんでコア部分のC++実装の共通化に注力してるって話だし
モバイル版も普通にC++ベースなんじゃねのん
845デフォルトの名無しさん
垢版 |
2017/06/03(土) 01:14:28.52ID:QRerHNeF
C#勉強してるんだけど、デリケートがいまいち理解出来ない。。デリケート使えば便利なのは分かるけどこれを使わないと実現出来ない場面ってどういう時?
2017/06/03(土) 01:16:00.34ID:Uw5Qf9Wo
>>845
デリゲートな。
初心者ならまず使わない。ラムダ式にしとけ。
2017/06/03(土) 01:22:29.37ID:E49aIv1k
>>845
ネイティヴAPIにコールバック登録する時とかかな
たしかデリゲートじゃないとできなかったはず
2017/06/03(土) 01:38:57.02ID:sppp5Hjm
言うなれば過渡期の技術だからなあ
849デフォルトの名無しさん
垢版 |
2017/06/03(土) 01:41:40.44ID:4eBaDiw2
どういう時にメソッドを変数に入れる処理するの?
2017/06/03(土) 02:10:31.71ID:viAzPl9Z
>>849
それはどういう時に引数に値(例えば整数)を入れてメソッドに渡したいか、と同じこと

それと、なんか上でトンチンカンなこと言ってる奴がいるけど、ラムダ式はデリゲート型の値を
記述する方法のひとつだから、勘違いしない方がいいよw
2017/06/03(土) 07:08:50.92ID:9ojaDA+2
>>845
汎用的に使用できる定義済みのデリゲート型は?[C#、VB] − @IT
http://www.atmarkit.co.jp/fdotnet/dotnettips/730dlgttype/dlgttype.html

↑こういう便利なものがあるので、自分で直接delegateを宣言して使う必要はめったにないけど
Action だの Func だの使ってるときはデリゲートを使ってることになる
2017/06/03(土) 07:58:02.94ID:E49aIv1k
ICallable的なジェネリックインターフェースと匿名クラス自動実装の糖衣構文ではダメだったのかな
デリゲートを言語機能で用意する必要はあったのか
2017/06/03(土) 08:28:12.96ID:Z3mRcKD7
>>852
最初から有ったデリゲートを、後から出来た糖衣構文で代用って
2017/06/03(土) 08:36:18.21ID:SbbN/AwM
デリゲート自体を勉強せんでも
LINQにラムダ式放り込んでたら理解できるよになると思う
2017/06/03(土) 08:44:14.00ID:3mPJPhLT
はぁ?
2017/06/03(土) 08:46:13.26ID:LJI8Y72V
SchooにC#のデリゲートビデオ講座がある
2017/06/03(土) 08:52:49.76ID:LJI8Y72V
https://schoo.jp/class/3976
https://schoo.jp/class/3874
2017/06/03(土) 08:56:21.99ID:KrDw7qP6
linq to sqlって廃止になったの?
2017/06/03(土) 09:10:40.15ID:qpif0RbK
>>858
Visual Studio 2017のインストールオプションで見かけたけど
2017/06/03(土) 09:12:11.24ID:os85wqX+
>>852
Javaのアレは@FunctionalInterfaceをコンパイラが直接認識してたり
メソッドハンドルを使った実装をランタイムが自動生成してたりして正真正銘の言語機能だよ
キーワード増やしたくないのと既存コードとの互換性のためにああなっただけ
まあマルチキャストとデリゲート型宣言は失敗だったけど
2017/06/03(土) 09:34:48.42ID:iRt4UFxT
デリゲートは関数をいれる変数
ラムダ式は文字通り式

全然別物


>>858
開発終了
2017/06/03(土) 09:35:42.69ID:p/yrhdra
個人的にはラムダ式よりデリゲートの方が理解しやすかった
ラムダ式はまだまだわかった気になってるところがある
863デフォルトの名無しさん
垢版 |
2017/06/03(土) 09:52:25.31ID:5itNX5+j
>>845です
皆さんありがとう。
デリケートって書いてた。これは恥ずかしい。。
formアプリの場合、invokeメソッドを使うときはデリゲートを使わないといけない。それ以外は必要に応じて。という認識で大丈夫ですか?
task内で呼びだすメソッドをデリゲートで行う必要はべつにないですよね?
2017/06/03(土) 10:37:05.10ID:4DDVr3y5
delegateって、cやc++で例えると何?
2017/06/03(土) 10:45:49.34ID:clZaKS42
関数ポインタ
2017/06/03(土) 10:59:41.75ID:os85wqX+
>>864
直接当てはまるものはない
デリゲートは単なる関数ポインタではなく、ターゲットのオブジェクト参照を持っていて
インスタンスメソッドを呼び出すことができる
元ネタはDelphiのメソッドポインタ
2017/06/03(土) 11:16:23.86ID:oD9emiaJ
>>861
開発終了ッスか
ありがとうございます
2017/06/03(土) 11:27:20.05ID:X1r1Xqdt
>>863
formsアプリ云々は関係ない
2017/06/03(土) 11:33:01.98ID:F8KVXb5q
>>863
(説明が100%正しいか自信はないけど)つーか、デリゲート自体は変数と同じようなもので、
値を格納するんじゃなくてメソッドを格納するための型。C#のイベント機能もデリゲートを
使ってるし、意識する・しないに関わらず、デリゲートはあちらこちらで使われ、色々使える

メソッドを変数のように引き渡せるなら、クラス内の特定の処理を自由に差し替えたりできる
でしょ?たとえばあるクラスで、そのインスタンスを作った際に外部からメソッドを渡してやる
事で、インスタンス毎に異なる処理をさせる事ができたりする訳

ただし今はラムダ式など新しい記述方法が出てきていて、コード中でdelegateというキーワードを
使ってデリゲートを定義する機会は少ない
870デフォルトの名無しさん
垢版 |
2017/06/03(土) 11:46:13.55ID:pwJoSF0V
ありがとうございます
まぁこんな状態なので継承やインターフェースもうまい使いどころが分かっていないんですが。。要はまず習うより慣れろですかね
プログラムを作っててこういうことが出来れば便利なのに!を感じた時に使いどころを覚えていきます
2017/06/03(土) 11:52:54.38ID:l/gF2KNd
>>845
>>863
疑問に思ってるのは
「いちいち変数介して実行せんでも直接呼び出して実行すればいいじゃない」っていうことに見えるけどあってる?
invoke使わないといけないような場合は使いますけど…という

つまり、デリゲートなりラムダ式なりでわざわざ処理内容自体を渡す利便性って具体的になんだべ?ってことかいな
872デフォルトの名無しさん
垢版 |
2017/06/03(土) 12:04:32.36ID:pwJoSF0V
>>871
ありがとうございます
まさにその通りです
まだそういった場面になってないからそう思うだけだとは思うんですが使いどころがいまいちピンとこない感じです。。
サンプルプログラムを見ても、ん?普通にメソッド呼びだしたほうが分かりやすくね?みたいな
2017/06/03(土) 12:13:05.71ID:oD9emiaJ
>>872
クラス作成側と使用側が別れてる場面に当たらないと難しい

先頭ノードのみ公開されてるツリー構造のデータの
ノードのすべてを辿るメソッドの引数はデリゲートだと楽そうじゃない?
って言ってわからないならとりあえずまだいいんじゃね?的な
2017/06/03(土) 12:19:50.70ID:ytyChNwU
変数なんて使わないで直接数字を書けば良くない?
みたいな
2017/06/03(土) 12:29:55.38ID:F8KVXb5q
まあ、Formの中に全部の部品ぶちこんで、すべてのコードもぶちこんで、それですんでるうちは
継承だのインターフェースだのデリゲートだの小難しい事はあまり意識しないでもすむよな
ただ、プログラムの規模が大きくなって、だんだんスパゲティ化してきて処理をすっきりさせたい、
分けられる所は別のクラスに分けたいとか考え始めた頃に、ありがたみがわかってくる
2017/06/03(土) 12:32:52.42ID:l/gF2KNd
>>872
いきなり「この技術を自分のコードにどう取り入れるか」から入ってるからイメージ湧かないんじゃないかな
LINQは知らないの?
あれは初心者でも小手先で使えて、しかも便利な上に
「処理内容を渡す」という仕組みの便利さも実感出来ると思うんだけど
ラムダ式も、直接ラムダ式を調べるんじゃなくて(デリゲート知ってる人向けの説明ばっか出てくる気がする)
LINQのサンプルから入った方がイメージしやすいかも

継承やインターフェースなんかは「使う側」としてはもうすでに使いこないしてるはず
ListでもArrayでも、違うクラスなのにForEachで同じ書き方して列挙できるってのはまさに
インターフェースの機能だし
他にも無意識にインターフェースや継承の機能を使ってる場面はあるはず

つまり、.NETのライブラリで実際にその技術を使って設計されてるクラス使ってみて
「それがどういう仕組で動いてて、なんで便利に使えるのか」からアプローチした方がイメージ湧きやすいかも
同じ機能を持つクラスを自分で実装しようとしたらどうなるか、とかね
2017/06/03(土) 12:35:38.91ID:HOlIYUlS
関数を変数として扱えると、関数やクラスに引数とかメンバ変数として渡せるんだよ

たとえば朝6時になると何かアクションを実行してくれるクラスがあるとして、
そのクラスにアラームを鳴らすって関数を渡しておけば目覚ましになるし、
録画開始する関数を渡しておけば予約録画機能になる

元のクラスは変更せずに、渡す関数によってあとからいくらでも簡単に機能が追加できるから便利でしょ
2017/06/03(土) 12:36:02.80ID:Z3mRcKD7
>>872
例えば親フォームのメソッドを小フォームのダイアログなんかのデリゲートに突っ込んでやる
そうすると、メソッドは親フォームのクラス所属だから普通に親フォームのコントロールやプロバティーに簡単にアクセスできるが
小フォームから簡単に呼び出せる

ダイアログで親フォームのデータ更新するときなど便利に使えるよ
2017/06/03(土) 12:53:59.79ID:wtE6TEU1
一般的に「制御の反転(IoC)」と呼ばれる考え方だよ
構造化プログラミングでは通常、呼び出す側が何を呼び出すかを決めており、呼び出す側は呼び出される側に依存する
これをボタンのクリックイベントに置き換えると、
ボタンがフォームの特定のイベントハンドラに依存することになる
これだとフォームごとに別のボタンクラスを作らなきゃいけなくなるだろ?
それを避けるために「移譲」と呼ばれるテクニックを使い、呼び出す側(ボタン)に呼び出される側(ハンドラ)を渡す形になるように制御を「反転」させる
これでボタン側は共通にできる
2017/06/03(土) 12:56:39.87ID:Gn01LBfK
>>875
俺社環の話になるけどユニットテスト義務付ければ、糞長い何でもぶち込みコードを撲滅できるのかな
2017/06/03(土) 12:56:47.90ID:dUUYIXlx
>>875
規模関係なくない?
あくまで内部が触れない仕組みだよね
2017/06/03(土) 13:03:32.92ID:dUUYIXlx
>>877
それだと理解できないと思うな
だってタイマー判定してる箇所に処理書けばいいじゃん
あくまでその処理が触れないからデリゲートが意味を持つんだよね?
2017/06/03(土) 13:06:54.90ID:IVM+622+
>>881
もちろん、ライブラリの呼び出しもこういうスタイル
2017/06/03(土) 13:55:14.07ID:ep62Y9tf
配列.sort(compareFunction)

ここで引数に、ソートのやり方を渡せば、色々な順番で、ソートできる

例えば、abcd など文字の順番とか、
文字列の文字数が少ない順番とか、
様々な定義ができる

関数も関数オブジェクトに出来るし、
ラムダ式・クロージャも、オブジェクトだから、
これらはすべて同じで、引数にはクラスを渡していると考えればよい
2017/06/03(土) 13:57:09.06ID:dUUYIXlx
だからマイクロソフトが提供するapiなんかでこう使うんですってのじゃないとお目にかかる場面は少ないと思う
自社のソースだと作業者毎の縄張りとかないからこんなの作ったらドキュメント必須だね
面倒なので誰もやらんと思う
2017/06/03(土) 15:31:04.45ID:aGpIaogF
>デリゲートの質問者

だから、デリゲート型の変数が使えるメリットは
例えばint型の変数が使えるメリットと同じだってば

もしintがリテラルしか使えなかったら、任意の自然数を引数にとって素数か判定するメソッドは書けない。

同じようにデリゲート型の変数が使えなかったら、例えばLINQのWhereみたいに
要素をフィルターする条件を引数に取るメソッドも、ListなんかのSortみたいに
2つの要素の大小関係を決める方法を引数に取るメソッドも書けない
2017/06/03(土) 16:01:31.05ID:4DDVr3y5
>>865>>866
ありがとうございました。
十年来の疑問が解消しました。
888デフォルトの名無しさん
垢版 |
2017/06/03(土) 16:37:00.32ID:U3W11ZZJ
>>845です
皆さんありがとうございます
指導頂いた見解として、ある箇所で必ず何かしらの処理をする(コールバック?)時に、その処理が確定的でないならデリゲートを利用して行う処理を渡してあげる

その処理が確定していて後々の拡張を考えないなら直接呼びだすメソッドを書けばいい(こう思ってる場合でもデリゲートを利用するメリットがあるのか??)

ってところでいいですか?
LINQはまだ使ったことないので今から勉強してみます。
2017/06/03(土) 16:41:07.68ID:MUswBLEo
>>888
そんなんでおkだと思う
わざわざクソな造りにする意味はない
890デフォルトの名無しさん
垢版 |
2017/06/03(土) 21:53:10.11ID:4eBaDiw2
そういや戻り値複数返せるんだっけか
忘れてた
891デフォルトの名無しさん
垢版 |
2017/06/03(土) 22:18:31.97ID:FqrvzZFP
一定時間ごとにテキストボックスにメッセージを表示する方法が分かりません。
textBox1.Text = "";(空状態)
Thread.Sleep(1000);
textBox1.Text = "A";
Thread.Sleep(1000);
textBox1.Text = "B";
ThreadSleep(1000);
textBox1.Text = "C";
とすると、空の状態から一気にCになります。
順番に表示するにはどうしたらいいでしょうか。
2017/06/03(土) 22:22:06.54ID:n3tRmqXX
>>891
C#固有のやり方は知らなくてすまないが一般的にそういう処理は別スレッドでスリープしながらUIスレッドにメッセージを投げて処理する
2017/06/03(土) 22:34:45.76ID:/NycxzQH
>>891
タイマー使えば楽
https://msdn.microsoft.com/ja-jp/library/system.timers.timer(v=vs.110).aspx
2017/06/03(土) 22:37:24.60ID:wtE6TEU1
>>891
Thread.Sleepをawait Task.Delay に置き換えるだけ
2017/06/03(土) 22:40:00.95ID:ytyChNwU
それ途中でユーザーがウィンドゥ閉じたらどうなるの?
2017/06/03(土) 22:57:52.94ID:/NycxzQH
>>891
ごめんちゃんと読んでなかったw
間にtextBox1.Update();かtextBox1.Refresh();を入れる
2017/06/04(日) 03:41:26.92ID:P6gj5FUv
ログ表示で俺もやったことあんな
textbox1のメンバにappendなんたらってあったような希ガス
2017/06/04(日) 03:43:19.28ID:P6gj5FUv
メソッドだった
AppendTextだった
2017/06/04(日) 08:39:53.30ID:K3h7l1/2
>>880
全てのユニットテストを義務化すれば撲滅出来ると思うが、コード側を相当修正しなければならないハズなんで、かなり大変だよ。
900デフォルトの名無しさん
垢版 |
2017/06/05(月) 01:03:05.89ID:SN6Ncnlv
varの話ししてもいいですか?
2017/06/05(月) 01:06:48.60ID:cwM+8VET
しつこい
2017/06/05(月) 02:19:59.90ID:SHynnf8E
好きにすれvar?(激寒オヤジギャグ)
903デフォルトの名無しさん
垢版 |
2017/06/05(月) 07:19:09.40ID:RlDx2o4h
>>902
4年ぶりに笑った
2017/06/05(月) 15:33:56.56ID:hFu+7Z6c
C#6から構造体のコンストラクタの中もでプロパティを初期化できるように
なってたんだな(VBは昔から可能だった)

ついさっき初めて知ったよ。
どうでもいい独り言でした
2017/06/05(月) 15:40:58.72ID:hFu+7Z6c
突っ込まれる前に
C#5まででもデフォルトコンストラクタを呼べば一応可能だった
906デフォルトの名無しさん
垢版 |
2017/06/05(月) 23:30:17.53ID:iyAPDj0t
WindowsFomアプリのUIに使うフォントって何がオススメ?
ちなWindows7機で
2017/06/05(月) 23:31:35.57ID:+rdFUdav
MSゴシック or MSPゴシック
2017/06/05(月) 23:34:59.63ID:W/kcYLNq
必ず入っているフォントなら見込み違いの表示崩れとか無いしな
2017/06/05(月) 23:37:32.63ID:hFu+7Z6c
普通に日本語ならUIゴシック、英語圏ならTahomaでいいでしょ。
910デフォルトの名無しさん
垢版 |
2017/06/05(月) 23:56:15.74ID:iyAPDj0t
ありがとう
意外にも普通な回答にびっくりだけど
よくオススメのフォントにあるメイリオはなんかUIにはたるんだ感じがしてしっくりこなかったのよね
2017/06/06(火) 00:03:48.51ID:RaNlh7mb
XP切り捨てでよければ(さすがにもういいかもしれん)メイリオでもいいかもしれんけど、
さすがにメニューやドロップダウンやグリッド系には使いづらいね
2017/06/06(火) 05:31:03.84ID:HK40XdCV
>>908
最近osの拡大率設定が125%とかなってて昔作ったもん全滅だった
見込み違いはないかも

さらにPC新調してから作ったものは125%でしか正しく表示できなかった
2017/06/06(火) 15:20:56.58ID:0R6Od0VL
UWP使えよ
2017/06/06(火) 15:42:24.60ID:QWKsgDqg
Win10時代だし、UWPで作った方がいいんかねぇ・・・
WinFormが便利過ぎて移れないw
2017/06/06(火) 16:13:38.01ID:S7dmZG1s
WPFもストアアプリも途中でぶん投げた今しばらく様子見ムード?
2017/06/06(火) 16:44:06.32ID:QWKsgDqg
これからはWPFの時代だよ!って言ってたのに、
あっさりUWPにしろって言い出したしなぁ
しかもUWPはシリアルポートとかの情報が少ないのがネック
2017/06/06(火) 16:53:10.50ID:jlCdnetV
デスクトップアプリをUWPにしろなんて言ってないでしょwww
2017/06/06(火) 17:13:58.50ID:1IA2XrQh
windows10 Visual Studio2017 C#でボタンを継承したカスタムコントロールを作ったのですが
実際にフォームに貼り付けてデバッグを開始したところ
フォームのInitializeComponentにおいてNullReferenceExceptionが発生してしまいました。
他の自作したカスタムコントロールでは発生しないので、まったく原因がわかりません。

実際に発生するコードは下の行です
this.buttonEx1.CorrectResponseColor = System.Drawing.Color.Empty;
buttonEx1 がnullであると言われてしまいます。

どなたか原因は分からないでしょうか
2017/06/06(火) 17:20:57.05ID:jlCdnetV
それで分かったらエスパーだよw
2017/06/06(火) 17:37:00.06ID:/Evb0TVs
>>918
buttonEx1 がnullであるってちゃんとbuttonEx1=new 〜で作っていないんじゃね?
あとはその継承した内容見ないと分からんよ
2017/06/06(火) 17:37:32.22ID:0w35IMTm
InitializeComponentより後ろに書け
2017/06/06(火) 18:28:55.59ID:SPVV3BvH
>>918
原因を調べて欲しいんならソースコード全部出せ
2017/06/06(火) 20:45:37.45ID:vbRZnttV
>>917
いや、そう見える

【マイクロソフト研究所】Win32からUWPへ――、アプリケーションの移行を進めるMicrosoft - クラウド Watch
http://cloud.watch.impress.co.jp/docs/column/microsoft/1056615.html

問答無用だぞ
2017/06/06(火) 20:50:59.15ID:SPVV3BvH
>>923
よく読め

>なお、デフォルトでは「任意の場所からのアプリを許可する」に設定されているため、
>今までと同じようにすべてのアプリケーションがインストールできる。
>すぐにWin32アプリケーションが利用できなくなる、という話ではないので、その点はご安心を。
2017/06/06(火) 20:55:30.59ID:75uQQyq/
>>916
>>808
2017/06/06(火) 21:09:08.72ID:FgG04McR
っていうかフラットデザインをデスクトップでもごり押しするならもうWindowsなんか使わんw
2017/06/06(火) 21:16:08.64ID:+oOec4F1
そりゃマイクロソフトとしちゃあ、UWPへの移行を促進したいのは山々だろうが、
笛吹いてみんなが付いてきてくれるかどうかだからな
マイクロソフトの持つ笛は、随分と昔に魔力を失ったように思えるが
まあ中身は実質Win32のなんちゃってだってUWP扱いだそうだから、それも含めて
いいんだったらねw
2017/06/06(火) 21:27:44.09ID:UBc0cyne
>>924
殺る気マンマンだろソレwww

ていうか逆に退路を残してあるのが信用出来ない
当然だけどある程度UWPのユーザが増えたら旧環境は切り捨てなんではないだろか?
んでやっぱり流行らなかったり方針を変えざるを得ない流れが来てしまったら
UWPも残念だったねと
世界のみんなの多数決次第?
2017/06/06(火) 23:01:12.88ID:kkdQmLPE
>>926
次のアップデートでまた新しいデザインシステム推してくるから大丈夫(?)だ
2017/06/06(火) 23:09:10.99ID:2bdSSkLF
そういやCommunity toolkitのロードマップだと、今月中に1.5リリースとなってるな(今は1.4)
2017/06/07(水) 00:04:31.85ID:mz7+HHz3
業務クライアントアプリはもうこのままWinFormsと心中させてあとはWebへどうぞという感じなんだろうね
932デフォルトの名無しさん
垢版 |
2017/06/07(水) 02:42:03.24ID:pdmLTJmR
UWPもWPFも作るにあたってそんな変わらなくない?
2017/06/07(水) 03:45:52.39ID:R65Kt66e
>>926
次のFluent Designもフラット。
さようなら。
2017/06/07(水) 04:52:19.95ID:MG60w+U/
フラットデザイン俺は好きだけどね
でも用意されたコントロール使ってもフラットになんねーのにイラッ
2017/06/07(水) 07:12:14.96ID:pKJ6pPG8
>>923の記事タイトルがミスリードっぽい
exeからappxへと書いてくれれば分かりやすいのに
936デフォルトの名無しさん
垢版 |
2017/06/07(水) 07:19:22.27ID:5R+RdKTB
tryのブロックにint i = "string";と書くと
catchに移動する前にデバッグすら出来ないんですが
tryに書けるエラーの基準とかあるんですか?
2017/06/07(水) 07:30:32.35ID:WQIQWgTH
>>936
tryより上で宣言して初期化してください
この時はvarは使えませんが
2017/06/07(水) 07:39:27.82ID:BAs4z1zZ
>>936
それはコンパイルエラー
間違っていることが明らかであり、試しに動かしてみる価値すらないゴミである
出直してこい、といわれて動かす前に門前払いされている状態
tryはそのエラーとは全く関係ない
2017/06/07(水) 07:52:01.04ID:7QhsLzGK
口の悪いコンパイラだな
940デフォルトの名無しさん
垢版 |
2017/06/07(水) 07:56:49.99ID:5R+RdKTB
>>937
事前に宣言は必須なんですね
>>938
実行時エラーってやつと区別されてたんですね。勉強になります。

返信ありがとうございました。
941デフォルトの名無しさん
垢版 |
2017/06/07(水) 07:57:44.22ID:pdmLTJmR
>>936
そんなあなたに
varを使ってみてはいかがでしょうか?

intをvarに変えるだけであら不思議!
2017/06/07(水) 08:13:59.26ID:898Dxfil
>>939
黙ってられるよりマシ
2017/06/07(水) 09:30:19.48ID:p48PqPV5
int i = "123";がコンパイルできないc#はクソ
みたいなスレがこの先バンバン立つだろうw
2017/06/07(水) 11:39:51.62ID:TVAfXG6P
>>935
ミスリードじゃねぇよ
普通に大手とかドメイン環境でwin32禁止来るだろ
2017/06/07(水) 12:13:45.56ID:AIh4vCR3
>>943
わざわざ入らない入れ物に突っ込むとかプログラマ以前にキチガイ
>>936は throw new ApplicationExceptionが欲しかったんじゃないのか
2017/06/07(水) 12:19:21.27ID:aMWxbBw7
今更>>923の記事読んでみたけど、普通に考えて無理筋だね。
ほとんどのユーザーに面倒を強いるだけでメリットが少ないUWP化なんぞ進むと思えない。
MSの偉い人はこんな計画が本当にうまくいくと思ってるのかな。
2017/06/07(水) 12:33:58.59ID:5u0dc6/r
>>946
UWPの通過点でしかないと思うよ。
2017/06/07(水) 12:34:47.01ID:5u0dc6/r
UWPも通過点でしかないと思うよ。

の誤りね
2017/06/07(水) 12:53:50.06ID:p48PqPV5
win32の上に乗ってる.net framework
その上に乗ってるUWP

win32叩きは異常
950デフォルトの名無しさん
垢版 |
2017/06/07(水) 13:04:16.58ID:pdmLTJmR
もっとも重宝されてるフリーウェアをUWP化すればお金入る?
2017/06/07(水) 13:07:50.25ID:tO58j6fY
UWPは.Net Frameworkの上に構築されるものではないのだが…
2017/06/07(水) 13:08:09.09ID:BAs4z1zZ
>>950
需要ない
UWPアプリを使う(とMSが想定している)ような層にアプローチするなら
UWPよりもWebサービスにした方がいい
2017/06/07(水) 13:35:44.28ID:tO58j6fY
o UWPのAppModel特有のローカルへの制限が厳しい。
 かなり緩くなるとはいえDesktop Bridgeも例外ではない
o XAMLの好き嫌いはともかくとして、用意されている標準コントロールがクソゴミ過ぎる。
 見た目、機能性、数のすべてに置いてウンコな廃棄物でありキーボードサポートなど貧弱の極み
o スマホアプリのようにWebサービス+APIのクライアントとしてなら有効な選択肢にもなるが
 PCの場合Webサービス+ブラウザで済んでしまう

絶望しかない…
2017/06/07(水) 13:39:14.47ID:sLr/nSma
同感
ネイティブとWEB版を足して10で割ったくらいの残念機能
2017/06/07(水) 13:52:16.48ID:aMWxbBw7
>>947
いや、コンバートのことを言ってるんじゃなくて
他の人も書いてるけどそもそもUWP自体のメリットがないとは言わないがかなり微妙...


ところでしょうもない質問だけど、C#のデストラクタってFinalizeを
オーバーライドするのと何が違うんだっけ?
2017/06/07(水) 14:03:28.62ID:tO58j6fY
ただの構文糖だからなんも違わない
混乱するだけだから採用しない方が良かったと言われ続けている負債である
2017/06/07(水) 14:12:06.29ID:BAs4z1zZ
FinalizeはオーバーライドすることでGCによるインスタンスの扱いが変わる特別なメソッドなので、
言語上も特別扱いすることはそれなりに理にかなっている
C++のデストラクタの構文を借りたのはクソだけど
2017/06/07(水) 14:13:26.31ID:aMWxbBw7
>>956-957
ありがとう!
2017/06/07(水) 14:45:19.77ID:pdmLTJmR
>C# で書いたデストラクターは、コンパイルすると Finalize というメソッドに変換されています。
>なので、デストラクターとは別に Finalize という名前のメソッドを書こうとすると、コンパイル エラーになります。

ホント酷い
2017/06/07(水) 14:47:50.46ID:wbJxkgsu
>>953
使ったことない人にはそう見えるかもしれんね
実際にはCommunity Toolkitという公式の拡張でコントロールは豊富だし
何と言っても.net nativeでの高速化と難読化要らずは代えがたい
あと、フリーウエアの場合に配布が容易なこととアンインストールが簡単なのもポイント高いよ
2017/06/07(水) 15:36:24.68ID:tO58j6fY
>>960
影だけレイアウト無視して配置されるDropShadowPanelや
ちゃんと丸め処理してなくて特定の幅で突然レイアウトが崩れるAdaptiveGridViewなどなど
ばぐまみれのUWP Community Toolkitがなんだって???
まあ修正しながら有難く使ってはいるよ

それはともかくTemplate Studioやら最近になってようやく標準コントロールの
絶望的な貧弱さをどうにかしようという動きがあることは理解してるよ
この程度の実装ですらコミュニティ頼りなのは気に食わんが
https://blogs.windows.com/buildingapps/2017/06/02/toolkits-toolkits-toolkits/
https://www.microsoft.com/store/apps/9nblggh4tlcq
https://www.microsoft.com/store/apps/9n3fgcz50qnl

今後目指していくのであろうこういうのも嫌いというわけじゃないのよ俺も
https://www.microsoft.com/store/apps/9pp1sb5wgnww

> 何と言っても.net nativeでの高速化と難読化要らずは代えがたい
> あと、フリーウエアの場合に配布が容易なこととアンインストールが簡単なのもポイント高いよ
そうだねユーザーもデベロッパーも笑顔になれる素晴らしいメリットだね、何もかもが駄目とも思ってないよ

でもその前にメリットへの導線をごっそりと引き千切る現実的なデメリットが如何ともしがたいという話なのよ
2017/06/07(水) 20:17:27.90ID:Wuu6XZh2
親の敵やねw
2017/06/07(水) 22:28:01.00ID:liR4rhVO
UWPはそろそろまともなプロセス間通信用意しろ
2017/06/07(水) 22:41:40.23ID:hhDTuKVW
コンバーター使いにくそうね
開発者モードにせずにexe右クリックしてコンバートとか
できないのかね
2017/06/08(木) 02:16:50.89ID:L/mCMieh
側だけ見ればUWPのメリットは結構あるから、msがどこまで本気で取り組むかだよな

>>928
VB6さえ動作させ続けるmicrosoftが何を切り捨てるって?
機能拡張は止まるかもしれんが
2017/06/08(木) 08:59:30.83ID:nTJCwNq1
>影だけレイアウト無視して配置されるDropShadowPanel
影で内側の大きさが変わる方が遥かに扱いにくいよ
どう見てもバグじゃなくて態々そう作ってあるんだよ

あんたが検索したサイト主の感性に合わなかっただけでしょうねw
2017/06/08(木) 10:17:04.39ID:D/BtlvEx
>>966
http://i.imgur.com/tPi2O6e.jpg
これが仕様通りってんならもうこちらから申し上げることはございませんわ
968デフォルトの名無しさん
垢版 |
2017/06/08(木) 11:22:29.61ID:dqKuRQ++
XAML、影だけ柔軟性がヤバい!
2017/06/08(木) 11:36:59.65ID:d3EsPIyM
>>967
本体はそこだ!
970918
垢版 |
2017/06/08(木) 12:12:58.72ID:SHrleZz4
カスタムコントロールにnullReferenceExceptionがでて困ったので質問したものです。
解決しました。
コンストラクタをPublicにしていなかったのが原因でした。
2017/06/08(木) 12:31:20.76ID:nTJCwNq1
>>967
パラメータをセットしないとうまく動かない程度が致命的欠陥には思えない
それと影だけ云々の方は引っ込めるのかな?
2017/06/08(木) 12:40:27.47ID:elsaDhFb
単なる自分の好き嫌いを普遍化してしまうのは他山の石
2017/06/08(木) 13:47:01.81ID:qNhFFpjU
>>961
標準のメールアプリやEdge見て思うんだけど、
Microsoftは自社製UWPアプリをもっと作り込むべき。
その過程で様々なUI要素やAPIが必要とされ充実してくる。
2017/06/08(木) 14:06:56.36ID:apTyslNw
自分はexcelをUWPに移行したんかよ
2017/06/08(木) 15:10:02.14ID:mw9s2Wq9
>>974
Windows8.1以前でも動くんだからそんなこと聞かなくても分かるでしょ
2017/06/08(木) 15:23:49.33ID:apTyslNw
>>975
なんて奴だ許さん
2017/06/08(木) 15:50:58.31ID:IPntxoR8
Excelってまだ32bitアプリを互換モードで動かしてるの?
2017/06/08(木) 15:56:24.98ID:vfpGfaJ3
2010から普通の64bitアプリになってるよw
2017/06/08(木) 16:03:38.27ID:+U8tZQ4R
何年か前は64bitExcelは32bitの拡張プラグインを動かせないからMSが32bit推奨してたけど今は64bitのみになったのかな
2017/06/08(木) 16:10:16.90ID:1X84iHle
のみだったら32bit環境じゃexcel動かなくなるけどw
2017/06/08(木) 16:30:04.35ID:uvcFGMan
>>980
動くの?
2017/06/08(木) 19:01:05.53ID:AFDOnKdj
マクロ互換無いからMSも64bitそんなに推奨してなかったような
実際動かなかったから32bitインストールし直したし
2017/06/08(木) 19:20:06.08ID:g3CnR/N/
確かそんな感じだったね

でも、どういう仕組みか知らんけどオートメーションに関しては
32bitのコードから64bitのエクセルを操作することも、64bitのコードから
32bitのエクセルを操作することも可能で、その辺はよく出来てると思った
2017/06/08(木) 19:43:15.20ID:hXrhimZ3
オートメーションはプロセス間通信がそのへん吸収してるから。
2017/06/08(木) 20:18:31.48ID:pp906l+Q
UWPの文字を見ると胃が痛い
2017/06/08(木) 20:31:05.92ID:ne0ycUdR
尻からUWP出てきたわ
2017/06/08(木) 21:13:55.80ID:D/BtlvEx
>>971
誰も致命的な欠陥なんて言ってねえしなあ
俺だってこんなささやかなライブラリの些細な不具合でネチネチ言うのは本意じゃないんだがね
不具合すら認めらない人が居てこんなにしつこいとは思わなんだよ

> それと影だけ云々の方は引っ込めるのかな?
影だけ云々って部分を勘違いしてるようだからわざわざスクショしたのに
そこすら伝わってねえとかバカも大概にとけ
コンテント置いてきぼりにして親の影パネルが配置されるから影がずれるって言ってんの
2017/06/08(木) 22:36:34.85ID:qNhFFpjU
>>987
眼が見えない人かもしれないから優しく
2017/06/08(木) 23:13:15.13ID:ETkTe3KK
>>983
COMのアウトプロセスサーバーは32/64bit統一不必要だけどインプロセスサーバーは統一が必要だね
2017/06/08(木) 23:16:56.66ID:joHalbqV
>>987
影をアニメーションさせる時、君の考える仕様だと本体の大きさが影の大きさの影響で変化しちまうよね
影が動くのは光源が動くことだから本体は動いちゃいけないんだよ
だから現在の仕様が正解で君の指摘は的外れです
2017/06/08(木) 23:24:07.08ID:qNhFFpjU
>>989
idl だなんだでそれなりに使われて積み上げてきた rpc 関連技術も今や昔
単なる http で xml 渡したり jsonp したりなんとも後退したもんだよね
2017/06/09(金) 03:07:13.50ID:b4rHMODw
>>990
いやこのケースはそんなこと言ってる奴は死刑にして欲しい
2017/06/09(金) 14:52:46.96ID:ZTqRiKw5
>>992
だから目が見えない人には優しくしろってば
2017/06/09(金) 15:38:25.27ID:1jgja60X
言語習得するにはやはり参考書の1つや2つ必要?
ネットの情報だけで乞食するにはいつか限界がくるかな
2017/06/09(金) 15:58:59.01ID:ZTqRiKw5
学ぶなら公式のドキュメントを読めば十分
どうしてもわからないときやピンポイントやりたいことがあるときには
そのトピックについて検索してネットの記事とかに頼ればいい

十分は言い過ぎにしてもとにかく公式のを読むこと。
2017/06/09(金) 16:14:14.74ID:vSS0Y+fX
パクるのがいちばん
2017/06/09(金) 16:23:55.99ID:HHjljMDI
細かい内容になるとリファレンスが殆ど英語だからなぁ
英語アレルギーにとっては苦痛
2017/06/09(金) 16:28:53.41ID:PX5MZeqq
見聞を広めるなら英語学習は表裏一体
2017/06/09(金) 16:46:47.84ID:sHv5FCAD
>>997
リファレンスの英語なんてsetとgetぐらいじゃね?
あとの単語は記号
2017/06/09(金) 17:45:45.79ID:Y6dY8bQb
技術系の文章なんて文法的には中学英語で十分読めるよww
使われる単語数も知れてる
英語学習てw
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 37日 19時間 40分 7秒
10021002
垢版 |
Over 1000Thread
2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


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

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

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

▼ 浪人ログインはこちら ▼
https://login.2ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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