[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/25 17:28 / Filesize : 263 KB / Number-of Response : 1021
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

ふらっと C#,C♯,C#(初心者用) Part131



1 名前:デフォルトの名無しさん [2017/09/08(金) 18:12:11.06 ID:Ej7G00WU.net]
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

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

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

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

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

■前スレ
ふらっと C#,C♯,C#(初心者用) Part130
https://mevius.2ch.net/test/read.cgi/tech/1500327645/
■関連スレ
C#, C♯, C#相談室 Part94 [無断転載禁止]©2ch.net
echo.2ch.net/test/read.cgi/tech/1492843013/

■コードを貼る場合は↓を使いましょう。
ideone.com/
https://dotnetfiddle.net/

■情報源
https://msdn.microsoft.com/en-us/library/gg145045.aspx
referencesource.microsoft.com/

152 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 08:51:52.43 ID:2OL+AYLM.net]
oracle()

153 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 09:00:16.82 ID:jUJn8YC2.net]
>>149
10倍も遅くならないから
でもlinqは普通に10倍ぐらいは遅いよ

154 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 09:08:49.90 ID:NbPbWVRY.net]
>>152
1ナノ秒が10倍遅いのと1秒が2倍遅いのとでは10倍の方が結果速いって例えは理解できる?
Linqは前者。てーのーくんにはわからないだろうな〜w

155 名前:デフォルトの名無しさん [2017/09/13(水) 09:10:16.92 ID:NSWcHcOm.net]
>>139
SystemColorsの各プロパティが返すのはColor型だよ
システム色だけを代入できる型ってのはSystem.Drawingには存在しない
全部Color構造体で扱われる

156 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 09:14:16.27 ID:jUJn8YC2.net]
>>153
問題は同じ処理だとしてもネックになる箇所で同じ処理でも別の処理書かなきゃいけないじゃん
それも面倒だし
全体に散りばめたときに10倍っていうと流石に問題が起きる遅さだよね

linq禁止のがぶっちゃけ楽だねぇ

157 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 09:18:11.66 ID:AIHl3Jwd.net]
>>150
C#は入りやすいし、色々作りやすいから好きだわ
GUIもちゃと

158 名前:作れるし、Unityでゲームも作れる
今後はxamarinでアプリ開発もできるようになるし
やったねC#!
[]
[ここ壊れてます]

159 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 09:22:17.18 ID:uHFm/dQd.net]
>>155
コード晒せ

160 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 09:24:03.36 ID:RaLzloEv.net]
>>154
ありがとうございます
できました



161 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 09:26:53.05 ID:NbPbWVRY.net]
>>155
え?処理のかき分けが面倒なんだw
Linq禁止する方が面倒なのにな〜wてーのーくんは世界の人々がどうしてLinq使ってるか考えたことないの?ねえ?

162 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 09:50:09.34 ID:jUJn8YC2.net]
>>159
だってかき分けの工数見積りに入ってねーし

163 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 10:04:51.90 ID:a0xLHUjR.net]
qiita.com/wilfrem/items/0cbece30e278353eb941
LINQが遅いと言われてたので速度比較してみた

結論
LINQは遅いっていうのは、ボトルネックの考え方的に間違いである。
ただし、LINQの一部関数は遅いので改良の余地はありそう。

164 名前:デフォルトの名無しさん [2017/09/13(水) 10:07:49.89 ID:MBL3+jC1.net]
売国安倍は憲法改正で国民主権と基本的人権
を奪うつもりだ。 ← 民主主義の崩壊

www.data-max.co.jp/280113_ymh_02/

↑ マスコミは 9条しか報道しないが 自民案
の真の恐怖は21条など言論の自由を奪うこと

blog.goo.ne.jp/kimito39/e/ec37220f64a8e1d6ed732dd0ab95cbf0

↑超危険な緊急事態条項で人権無視の内閣独裁に!

https://www.youtube.com/watch?v=h9x2n5CKhn8

上のビデオで 自民党は 国民に基本的人権
は必要ないと怖いことを平気で主張。

xn--nyqy26a13k.jp/archives/31687

↑ 都民ファーストも安倍と同じく 憲法改正で 人権
無視の大日本帝国憲法に戻すつもりだから
絶対に投票してはだめだ。 民主主義が崩壊する

blog.goo.ne.jp/ngc2497/e/8899f65988fe0f35496934dc972e2489

↑ ネトウヨ= 安倍サポーター工作員はネットで国民を騙す。

https://dot.asahi.com/aera/2016071100108.html?page=3
blog.goo.ne.jp/kimito39/e/c0dd73d58121b6446cf4165c96ebb674

↑ 安倍自民を操るカルト右翼「日本会議」は国民主権否定。
国民投票や選挙では自民党、維新、小池新党に絶対に入れるな。

165 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 10:20:15.53 ID:NbPbWVRY.net]
>>160
はー?そんなんだから底辺なだよ君はw
もっとさぁ勉強してきなさい

166 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 10:26:50.59 ID:jUJn8YC2.net]
>>163
実際二度手間じゃん
わざわざ遅い処理使う意味もよくわかんないし

167 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 10:28:43.32 ID:uHFm/dQd.net]
>>164
コード晒せ

168 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 10:35:04.05 ID:NbPbWVRY.net]
>>164
はあ?二度手間?これだから低脳はw
自分の考えとやってる事が手間になってるという現実にはやく気付こう?ね?

169 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 10:40:39.80 ID:krw6K623.net]
>>166
は?実際二度手間じゃん
使わなければそれに悩むこともないし
しかもこれを使ったからといってそんなに手間が減るわけじゃないよ

でも、10倍遅いんだよ
リスクばっかり高いよね

170 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 10:45:51.78 ID:+YTT5det.net]
>>166
君も自分が確信犯で荒らしてる寂しいバカの共犯にとっくになってることに早く気づけ。
っていうかこんな幼稚なバカ相手にして何が楽しいんだ



171 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 10:45:59.33 ID:NbPbWVRY.net]
>>167
使い分けができない底辺プログラマーですって自己紹介してるようなものだよ?
それとも自分はそうですって認めちゃってるのかな??

172 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 10:47:58.15 ID:krw6K623.net]
>>169
え?どうやって使い分けるの?
見積りに必要なのに見積り時に出てこないじゃん
かき分けの工数が

173 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 10:50:09.53 ID:9sNAvSM9.net]
>>138
これ見る限り大丈夫じゃね

https://msdn.microsoft.com/ja-jp/library/aa664754(v=vs.71).aspx
>foreach が配列の要素を走査する順序は、次のように定義されます。1 次元配列の場合、要素はインデックス 0 から始まってインデックス Length ? 1 で終わるインデックスの昇順に走査されます。
>多次元配列の場合、要素は、最初に右端の次元のインデックスが増加し、次にその左側の次元のインデックスが増加し、さらにその左側の次元のインデックスが増加する、というように走査されます。

174 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 10:51:21.99 ID:NbPbWVRY.net]
>>170
あ、やっぱり出来ないんだね
その歳で可哀想

175 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 11:14:56.36 ID:rN6iPy1t.net]
やばすぎワロリーヌ

176 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 11:21:14.85 ID:dr0a1QEl.net]
$"{num:D4}"
こういうふうに書式を指定して数字を表示したいときに、この4の部分を変数に変えるのってどうすればいいの?

177 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 11:46:51.07 ID:szmZ8wjk.net]
>>171
なる程、大丈夫そうだね。サンクス

178 名前:デフォルトの名無しさん [2017/09/13(水) 11:47:30.22 ID:NSWcHcOm.net]
>>174
多分無理
$"{num.ToString("D"+x)}"
みたいにそこだけToStringすれば?

179 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 11:48:53.98 ID:krw6K623.net]
>>172
ん?でどうやるの?
答えられないのに煽りだけは一丁前なの?

180 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 11:54:11.91 ID:NbPbWVRY.net]
>>177
あれあれ?
さっきからてーのーくんの言ってること全部ブーメランしてるよ



181 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 12:04:54.00 ID:krw6K623.net]
>>178
は?どこが?
このままだと負けちゃうからって変なこと言い出すなよw

182 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 12:08:41.80 ID:+9qu6YUz.net]
キチガイにさわんなすな

183 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 12:08:44.02 ID:NbPbWVRY.net]
>>179
負けるとか何言ってるのかな?本当に頭悪いね〜w
使い分けができないのを言い訳にしないでまずはちゃんと勉強しなさい

184 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 12:23:06.88 ID:krw6K623.net]
まあ、俺をやっつけたところでlinqがおっそいことは変わらないけどね

お前の作るものって全部ナチュラルに10倍遅いだろ
今時のPCだから大丈夫って?
いやー、俺の使うアプリでは遠慮して欲しいなw
メモ帳とかお前が作ると普通に起動に10倍かかるんだろ?w

185 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 12:23:18.90 ID:+YTT5det.net]
>>175
これ、前にも話題になったけど、
foreachが列挙する順序はコレクションの列挙子の実装に依存するよ。

>>171の記述は配列についてのもの

186 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 12:28:02.59 ID:NbPbWVRY.net]
>>182
Linq使うと起動に10倍も時間かかるんですか〜?w
無知を曝け出して恥ずかしくないの?あ、低脳だから気付いてないのかw

187 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 12:30:29.30 ID:X5nLy4IB.net]
private void Form1_Load(object sender, EventArgs e)
とForm1ロード時に実行されるイベントハンドラを
Form1上のボタンが押された時に再度実行したい時に
ボタンクリックのイベントハンドラに
Form1_Lord(null,null);
と書いて呼び出した場合、何かまずいことありますでしょうか?
今のところ、Form1_Load内でthis.はForm1として作動しているようですが、
Form1を明示的に指定したほうが良い気がしますが、
Form1_Lord(null,null);
のnullの部分にどう書くとForm1からの呼び出しという体になりますか?

やりたいことはボタンで追加した配列を再度読み込んでForm1_Lordを動かしたい
いわばForm1のリロードといった感じです

言葉を間違えてるかもしれませんが、よろしくお願いします

188 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 12:38:12.21 ID:krw6K623.net]
>>184
でもお前が作ったもんって普通に遅いと思うよ
どこでもそういう遅い処理書いて全体に散りばめちゃってるとネックになるとこしかみないっしょ?
でもロードとかちょっとしたとこでも処理使い回してるから
いまるところで微妙に遅いっしょw
積もり積もってクソ遅いけど比較対象がないからバレにくいって感じ

189 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 12:43:04.63 ID:NbPbWVRY.net]
>>186
そうやって事実でないことを思い込みで事実だとして今までの人生を生きてきたのかな?
君の頭の中ではLinq使うと起動が10倍遅いんだもんね〜
そろそろ現実を見ようよ?

190 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 12:52:48.02 ID:U2Uyxd+B.net]
マジキチの共演か
ただのプロレスか



191 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 13:04:29.12 ID:xEywpSPi.net]
>>185
よくやります。
自分は
Form1_Lord(this,null);
にして、呼ばれ側で e がNULLがどうか見て、自然なイベントか人為的イベントか区別したりしてます。

192 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 13:16:33.38 ID:+YTT5det.net]
>>185
>>189
いや、そういう場合は今Form1_Loadに書いている処理を別の独立したメソッドHogeに移して、
FormのLoad、ButtonのClickそれぞれのイベントからHogeが呼ばれるようにしましょうよ

方法はラムダ式使って
this.Load += (s, e) => Hoge();
Button1.Click += (s, e) => Hoge();

でもいいし、ラムダ式が分からないならデザイナで追加したイベントハンドラから
Hogeを呼んでもい

193 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 13:30:55.02 ID:PNHj0wS/.net]
決まった目的のために作られたイベントハンドラを別の目的に使うのはよくないよ

すでに書いたコードを実行したいだけなら別のメソッドにしたほうがいいというかすべきだよ
VSのリファクタリングが便利
メソッドにしたい部分を選んでおいてメソッドの抽出を行うだけ

194 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 13:53:58.18 ID:efGCb2+a.net]
>>187
いや、普通に遅いだろ

195 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 14:17:03.48 ID:NbPbWVRY.net]
>>192
起動が10倍遅いって本気で思ってるんだ?呆れた

196 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 14:23:53.02 ID:GgMwIiBh.net]
LINQに親を殺されたマン

197 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 14:35:06.35 ID:X5nLy4IB.net]
>>190
>>191
どうもありがとうございます
やはり行儀悪そうですよね。スッキリもしてないし、なんとなくロジカルじゃない。
別メソッドに移してソレを呼び出す方向でいきます

>>189
どうもありがとうございます
「あぁここでリロードかからないから更新されないんだぁ〜」と気づいた時に応急処置的に使ったんですが、
「あ、結構ちゃんと動くw」のでこれ良いのかな?ってっ感じでしたが、人為的呼び出しを区別するという使い方もできるんですね

今は勉強中なので、私には裏技的なものはまだ早いですね

198 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 16:56:12.13 ID:bmJBLYID.net]
このスレはラムダ、LINQ、デリゲート禁止なんで

199 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 16:57:28.21 ID:szmZ8wjk.net]
あとvarもな

200 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 16:59:44.77 ID:Lhui2ZmI.net]
varは宗教戦争
ラムダとlinqは新しい物に適応出来ない老害が喚いてるだけ



201 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 17:02:03.09 ID:efGCb2+a.net]
>>198
えーあの遅さを老害で片付けるってなくね?
10倍だぜ10倍

202 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 17:04:29.26 ID:NbPbWVRY.net]
頭の遅れも10倍のてーのーくんにはLinqが理解できないらしい

203 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 17:06:30.00 ID:cy/tvTzl.net]
することないからと言って初心者の質問スレで雑談するな。他行けよ

204 名前:デフォルトの名無しさん mailto:sage [2017/09/1 ]
[ここ壊れてます]

205 名前:3(水) 17:08:01.04 ID:efGCb2+a.net mailto: >>201
単発が言っちゃうんだ?
[]
[ここ壊れてます]

206 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 17:14:08.58 ID:NbPbWVRY.net]
Linq使うと起動が10倍遅くなると言う奴が言っちゃうんだ?

207 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 17:16:44.60 ID:+9qu6YUz.net]
だからお前らキチガイにさわんなって

208 名前:195 mailto:sage [2017/09/13(水) 17:53:06.84 ID:X5nLy4IB.net]
>>191
うぉおお
リファクタリングスゴイ!
VSの機能もっとよく勉強しよう…

209 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 18:08:41.03 ID:e8EuhLKE.net]
DataGridViewのCellを複数行の文字列を表示するComboBoxにしようとしてるんですが
DataTableにComboBoxの列を挿入して
そのDataTableをViewのDataSourceとして使おうと思ってます
ここで困っているのですが、DataTableのComboBoxの列のDataTypeって
System.Stringでいいんでしょうか??
複数行の文字列をList<string>でまとめて渡そうとしてるんですが
「実行時にDataGridViewComboBoxCellの値が有効ではありません」エラーが出ます
DataTypeがListではなくstringなので当たり前の話のようにも思えますが
DataTypeで使えそうなのは他にSystem.Objectくらいで、これもエラーになります

210 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 20:38:23.16 ID:DuSqV2km.net]
とりあえずDataTableにはComboBoxは入れない
もうなんというか全体によく分からん
そもそもComboBoxは表示じゃなくて選択のためのコントロールだと思うんだけど
ひょっとして単に数行にわたるデータをドロップダウンで表示したいってこと?



211 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 20:42:22.41 ID:bd/NJHl4.net]
逆にDataTableにcomboboxで出力して型を確かめればいいんじゃないの
通常のcomboboxもObject.CollectionでList<string>は直に入れられない

212 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 20:45:55.39 ID:e8EuhLKE.net]
>>207
そうそうそんな感じです

213 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 20:48:04.62 ID:e8EuhLKE.net]
ComboBoxで複数選択肢を見せて
ユーザがドロップメニューから必要な選択肢を選んだときに
イベントハンドラでそれに対応する値を拾って・・・みたいな感じです

214 名前:デフォルトの名無しさん [2017/09/13(水) 21:15:35.44 ID:Kb3sPxGP.net]
Unityで以下のコードの[Dependency("Cat")]を
[Dependency("Dog")]や[Dependency("Fox")]のように
文字列の部分を動的に書き換えたいのですが
そのような事は可能でしょうか?

よろしくお願いします

public class Person
{
[Dependency("Cat")] //ここを動的に"Dog"や"Fox"に書き換えたいです
public IAnimal Pet { get; set; }
public void CallPet()
{
Pet.Cry();
}
}

215 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 22:13:13.17 ID:DuSqV2km.net]
>>210
もうちょっとシナリオを詳しく

216 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 22:18:36.37 ID:DuSqV2km.net]
>>211
tnakamura.hatenablog.com/entry/20081029/1225239230
このページ?

> 今回はコードで依存性を注入しました。
> 属性を使った方法では、クラスを切り替えるにはコードを修正して
> リビルドする必要があるので、使う場面は少ないでしょう。
> 次は構成ファイルを使って依存性を注入する予定。

217 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 22:41:09.81 ID:n1InxPaY.net]
>>211
アノテーションやめてResolveするときにクラス名渡すようにすればいい
Resolve<T>(String)やBuildUp<T>(T, String)の
Stringのところにマッピング登録時に指定した名前を渡す

218 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 23:01:12.47 ID:bDhlqYix.net]
実装の動的切り替えが必要ということはそれはDIパターンでやるべきじゃないってことだよ
せっかく依存性を断ち切った筈なのに選り好みしちゃダメでしょ
設計を間違えてるんだよ
こういう場合は素直にFactoryパターンを使う
FactoryそのものはDIすればOK

219 名前:デフォルトの名無しさん mailto:sage [2017/09/13(水) 23:54:41.00 ID:eqWbXMWw.net]
datagridviewに、エクセルのデータバーみたいなの表示させたいんですが、できますか?

220 名前:デフォルトの名無しさん mailto:sage [2017/09/14(木) 07:17:51.37 ID:33e4FbzQ.net]
>>213
そうです
そのページを見た時に、文字列の部分をXMLファイルに書けば呼ぶクラスを外部のファイルに書けると思ったんです

続きがある事に気付かなかったので合わせて読もうと思います

ありがとうございます



221 名前:デフォルトの名無しさん [2017/09/14(木) 14:49:16.54 ID:pAH1a2kb.net]
class hoge
{
public int a;
public void func(){++a;}
}
delegate void func();
var h = new hoge();
func f = h.func;
h = null;
f();

この場合f()は正常に実行されますか
hをnullにしただけではGCでお掃除されないのですか

222 名前:デフォルトの名無しさん [2017/09/14(木) 15:10:34.66 ID:QdQxHVhn.net]
コンソールへの表示についての質問です。
BackgroundColorなどを変更して文字の色を変えるのではなく、文字列自体に色をつけることはできないのでしょうか?

string str = MyColor.Red + "Red";
Console.WriteLine(str);
// 赤色で、Redと表示されるようにしたい

223 名前:デフォルトの名無しさん mailto:sage [2017/09/14(木) 15:21:48.41 ID:srSq6PT2.net]
>>219
https://msdn.microsoft.com/ja-jp/library/cc708913.aspx
ここに書かれていることしかできない

224 名前:デフォルトの名無しさん mailto:sage [2017/09/14(木) 15:33:35.47 ID:FSouChj9.net]
一旦現在の前景色を退避して、前景色を指定した色に変更、文字列出力、もとの前景色に戻す
っていう関数を自分でつくればいい
前景色は
Console.ForegroundColor = ConsoleColor.Red
のようにして変えられる

225 名前:デフォルトの名無しさん mailto:sage [2017/09/14(木) 15:46:46.92 ID:4pNC6iaA.net]
>>218
デリゲート変数がインスタンスhのインスタンスメソッドへのデリゲートを握ってる間は、
間接的にhへの参照を持ってるのと同じことになるみたいよ。
もちろんデリゲート変数じゃなくてイベントでも同じ。
だからこれがリークの原因になることがある。

ググってみたけどMSDNだとここにちょろっと説明があるぐらいだなあ
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/events/how-to-subscribe-to-and-unsubscribe-from-events#unsubscribing

226 名前:デフォルトの名無しさん mailto:sage [2017/09/14(木) 16:38:29.22 ID:XVFgKdZv.net]
>>218
class Hogeにファイナライザ実装して
h=nullの後にGC.Collect()呼べば自分で確かめられるよ

227 名前:デフォルトの名無しさん [2017/09/14(木) 17:43:05.75 ID:QdQxHVhn.net]
>>220 >>221
ありがとうございます。

228 名前:デフォルトの名無しさん mailto:sage [2017/09/15(金) 00:42:42.05 ID:Ay+AWdB+.net]
配列に要素を追加するべく、検索で調べて、色々やってても希望の作動にならず、散々悩んでたのですが
参考にしたページの

>配列に要素を1つ追加した新しい配列を取得したい場合のメモ。
>
>配列でやる。
>
>int[] array = { 0, 1, 2 };
>int[] result = new int[array.Length + 1];
>result[array.Length] = 3;
>
これで最後にarray = result;
入れてもきませんよね?
初心者の私が文句言うわけじゃないですが、半日悩んでしまった
追加した分しか表示されないぃ〜とw

229 名前:デフォルトの名無しさん mailto:sage [2017/09/15(金) 02:16:45.02 ID:kDBNGlTT.net]
result[array.Length] = 3の前か後ろにArray.Copy当たりが抜けているんだろうが
配列1 = 配列2
みたいな代入はまずやらない

230 名前:デフォルトの名無しさん mailto:sage [2017/09/15(金) 04:20:57.10 ID:Ay+AWdB+.net]
そゆことでした
他のページ見て気づきました

このコードで行くと

int[] array = { 0, 1, 2 };
int[] result = new int[array.Length + 1];
array.CopyTo(result,0);
result[array.Length] = 3;
で行けたのでした

で今気づいたのですが、実装はstring[]だったんですが
要素数が違うもので代入しても大丈夫…なんですよね?
エラーも出ないし
arrayが全くresultと要素数含めておなじになると



231 名前:デフォルトの名無しさん mailto:sage [2017/09/15(金) 04:39:07.14 ID:pokoDkL3.net]
質問内容と変わっちゃうけど、動的に配列使うなら、Listを使った方がいいような
Arrayにしないといけないなら、そのときだけToArray使えばいいし

232 名前:デフォルトの名無しさん mailto:sage [2017/09/15(金) 08:11:43.44 ID:eL7tpeWb.net]
でもLinqまで使うと起動が10倍遅い君が暴れだすから気をつけろ

233 名前:デフォルトの名無しさん mailto:sage [2017/09/15(金) 08:21:21.03 ID:8bT15OBL.net]
起動時間が気になるならUWP使えばいいのにな
ライブラリをスタティックリンクで、使わないクラスは実行ファイルから取り除かれる
だから笑っちまうほど起動は高速だ

234 名前:デフォルトの名無しさん mailto:sage [2017/09/15(金) 11:32:01.43 ID:E70gGXQb.net]
そういえば前スレでもLINQが遅い遅い言ってるのいたけど同じ奴かな
Stack OverFlowの中の人が遅いからusing System.Linqを根こそぎ消したとか言ってたけど、
その情報のソース聞いても教えてくれなかった

235 名前:デフォルトの名無しさん mailto:sage [2017/09/15(金) 11:58:09.79 ID:U5HKHjh0.net]
>>231
そんな細かい情報知らないよ
俺は自分が試したことしか言わない系

236 名前:デフォルトの名無しさん mailto:sage [2017/09/15(金) 12:03:46.69 ID:U5HKHjh0.net]
しかも英語読めないのでソースに英語サイト紹介されても無視するのでよろ

237 名前:デフォルトの名無しさん mailto:sage [2017/09/15(金) 12:13:29.77 ID:Y21IVLhl.net]
根こそぎ消したのはEFだろ
あれもいちおLinqな

238 名前:デフォルトの名無しさん mailto:sage [2017/09/15(金) 12:16:10.74 ID:2JmbV9iR.net]
>>227
まず参照型がどういうものか理解した方がいいね。
配列は参照型。

参照型の変数に入っている値はオブジェクトの参照(とりあえずオブジェクトのメモリー上の位置を表す値だと思えばいい)
であってオブジェクトそのものではない。

array = result;
だからこれは、変数resultの中に入ってる「配列への参照(位置情報)」をarrayにコピーしてるだけ。

webで言えばarrayやresulに入ってる値はただのURIであってドキュメントやファイルそのものではない。

https://msdn.microsoft.com/ja-jp/library/cc406735.aspx

239 名前:デフォルトの名無しさん mailto:sage [2017/09/15(金) 12:21:40.65 ID:eL7tpeWb.net]
Linq使うとプログラムの起動が10倍遅いソースはまだ?

240 名前:デフォルトの名無しさん mailto:sage [2017/09/15(金) 13:11:40.52 ID:U5HKHjh0.net]
>>236
自分で測ってみれば?
テストプログラムじゃなくて会社で納品するようなプログラムでやってみるのオススメ



241 名前:デフォルトの名無しさん mailto:sage [2017/09/15(金) 13:29:37.48 ID:eL7tpeWb.net]
>>237
測ってみても起動に10倍も遅くならないからソース出せよ

242 名前:デフォルトの名無しさん mailto:sage [2017/09/15(金) 13:36:18.08 ID:48fogf69.net]
>>235
stringも参照型なので、そこだけだとその人はともかく変に勘違いする初心者もいるかもしれない
okwakatta.net/topic/topic051.html
このサイトが分かりやすいと思った
>>228
var array = new List<string>(new string[] { "0", "1", "2" });
array.Add("3");//要素の追加
string[] result = array.ToArray();//string[] に変換
こんな感じだよな
参照型に同じ型代入するのはだめじゃないけどなんか気持ち悪い

243 名前:デフォルトの名無しさん mailto:sage [2017/09/15(金) 13:38:43.47 ID:DZnU5fjo.net]
>>238
マジで
10倍が控えめに見えるぐらいの数字出るけど?

244 名前:デフォルトの名無しさん mailto:sage [2017/09/15(金) 13:46:22.35 ID:eL7tpeWb.net]
>>240
その根拠を見せてみろ
ん?どうした?はやくしろよ

245 名前:デフォルトの名無しさん mailto:sage [2017/09/15(金) 14:04:27.63 ID:DZnU5fjo.net]
>>241
いいよ別にw
お前が納得したってしなくたってw
俺の人生にはなんの肥やしにもならない
ただ、お前の作るプログラムはナチュラルに遅いw

246 名前:デフォルトの名無しさん mailto:sage [2017/09/15(金) 14:06:57.75 ID:eL7tpeWb.net]
>>242
はい逃げた

247 名前:デフォルトの名無しさん mailto:sage [2017/09/15(金) 14:09:01.17 ID:DZnU5fjo.net]
>>243
ハイハイw
逃げるw逃げるw

248 名前:デフォルトの名無しさん mailto:sage [2017/09/15(金) 14:17:25.98 ID:eL7tpeWb.net]
>>244
プログラムの起動が10倍遅いって嘘を喚いても誰も信じてないんだよ?可哀想

249 名前:デフォルトの名無しさん mailto:sage [2017/09/15(金) 14:34:30.37 ID:DZnU5fjo.net]
>>245
いや、

250 名前:ィ前の作るものは遅いだろ []
[ここ壊れてます]



251 名前:デフォルトの名無しさん mailto:sage [2017/09/15(金) 14:46:47.67 ID:eL7tpeWb.net]
>>246
いや全然?
起動が10倍遅いとか言っちゃう頭悪い底辺の方が遅いよ。みんなそう思ってる

252 名前:デフォルトの名無しさん mailto:sage [2017/09/15(金) 14:49:09.47 ID:DZnU5fjo.net]
>>247
じゃあ、ここまで食い下がることないじゃん
満足しとけよw
俺は使わないけどねw






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<263KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef