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


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

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



1 名前:デフォルトの名無しさん mailto:sage [2015/10/02(金) 20:50:08.06 ID:IGV3Viy6.net]
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

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

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

なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。

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

■前スレ
ふらっと C#,C♯,C#(初心者用) Part116 [転載禁止](c)2ch.net
peace.2ch.net/test/read.cgi/tech/1436344868/

■関連スレ
C#, C♯, C#相談室 Part89 [転載禁止](c)2ch.net
peace.2ch.net/test/read.cgi/tech/1443271409/

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

32 名前:デフォルトの名無しさん mailto:sage [2015/10/04(日) 20:47:58.51 ID:4ZFUkYGv.net]
じゃあ次に進もう

33 名前:デフォルトの名無しさん mailto:sage [2015/10/04(日) 20:53:49.03 ID:FsLwYc7A.net]
次は何がいいのかしら?

34 名前:デフォルトの名無しさん mailto:sage [2015/10/04(日) 21:16:12.67 ID:4ZFUkYGv.net]
ネットワークか3Dかな

35 名前:デフォルトの名無しさん mailto:sage [2015/10/04(日) 21:22:40.77 ID:FsLwYc7A.net]
>>32
両方出来るわよ。openglはよく使ったわ。

36 名前:デフォルトの名無しさん [2015/10/04(日) 21:26:32.67 ID:Vt6Jil15.net]
C:\Hoge\args\
と言う文字列から
args
を取り出すにはどうすればいいでしょうか?
GetDirectoryNameだとC:\Hogeになります

37 名前:デフォルトの名無しさん mailto:sage [2015/10/04(日) 21:28:25.31 ID:4ZFUkYGv.net]
>>33
なんだよ。初心者じゃないじゃん。神レベルじゃん。

38 名前:デフォルトの名無しさん mailto:sage [2015/10/04(日) 21:33:14.06 ID:0WB+oea1.net]
>>34
var path = @"C:\Hoge\args\";
var fileName = System.IO.Path.GetFileName( path.TrimEnd( '\\' ) )

39 名前:デフォルトの名無しさん [2015/10/04(日) 21:36:42.41 ID:Vt6Jil15.net]
>>36
ファイル名じゃなくてフォルダ名を取得したいです

40 名前:デフォルトの名無しさん [2015/10/04(日) 21:40:47.99 ID:GuH6DZcU.net]
>>34
マイナーなAPIだけど
new DirectoryInfo(path).Name



41 名前:デフォルトの名無しさん mailto:sage [2015/10/04(日) 21:43:53.33 ID:4ZFUkYGv.net]
>>37
再起

42 名前:デフォルトの名無しさん [2015/10/04(日) 21:48:10.61 ID:zHOzyLwf.net]
>>34
レスに文句ばっか言ってんじゃねーよ乞食

43 名前:デフォルトの名無しさん [2015/10/04(日) 22:14:59.10 ID:Vt6Jil15.net]
ありがとうございます。出来ました
>>40
すみません

44 名前:デフォルトの名無しさん mailto:sage [2015/10/05(月) 04:15:46.37 ID:eQ2/zVIr.net]
>>19
ideone.com/cwKTg3
普通にできるじゃん

明示的実装してんの?
https://msdn.microsoft.com/ja-jp/library/aa664595%28v=vs.71%29.aspx?f=255&MSPPError=-2147217396

45 名前:デフォルトの名無しさん mailto:sage [2015/10/05(月) 09:14:38.11 ID:NpHnTe7L.net]
>>42
彼はideone.com/bEzsTdを狙っているんでは?
出来なくても全く問題ないと思えるが、C#を欠陥言語だと揶揄したいのかな

46 名前:デフォルトの名無しさん mailto:sage [2015/10/05(月) 10:35:28.87 ID:LmMVGWnX.net]
このへそ曲がりな解釈をしたがる根性はなんとかならないのだろうか?
強烈なコンプレックスを持ってるんだろうなあ…

47 名前:デフォルトの名無しさん mailto:sage [2015/10/05(月) 15:46:26.20 ID:eQ2/zVIr.net]
>>43
うーん、池沼としか言いようがないな

48 名前:デフォルトの名無しさん mailto:sage [2015/10/05(月) 18:17:41.66 ID:PVqgELRl.net]
ListBoxのDrawItemイベントとかで
DrawItemEventArgs.Indexに-1が渡されてくることがありますが

これってなぜ?
意味ないと思うんだけど。
だって描画しろというイベントでしょ?
いつも-1を除外するコードを書く度に思うんだけど! 

と、ここまで書いて
背景を描けということなのかなと思い当たったけど合ってる?

49 名前:デフォルトの名無しさん mailto:sage [2015/10/05(月) 19:45:13.85 ID:W0LY67FT.net]
wpfを最近始めたけど、難しいね。
バインディングも融通が効くというか、わけわかんないというか、わけわかんないほう。
みんながerectronに飛びつくのもわかる気がするよ。

50 名前:デフォルトの名無しさん mailto:sage [2015/10/05(月) 20:49:50.82 ID:EY/b50y6.net]
今時HTMLは最低でも使えないと開発者として話にならないからね
どのみちHTMLは覚えなきゃならないし、HTMLで同じことは実現できるんだからわざわざWPFを使う理由がない



51 名前:デフォルトの名無しさん mailto:sage [2015/10/05(月) 21:05:08.85 ID:G+Q38Itw.net]
井の中の蛙っすなあ

52 名前:デフォルトの名無しさん mailto:sage [2015/10/05(月) 21:14:49.94 ID:PVqgELRl.net]
javascript地獄に落ちるよ

53 名前:デフォルトの名無しさん [2015/10/06(火) 16:36:11.30 ID:H4LWLTNp.net]
SVNでコミットしようと思ったら間違ってアップデート押してしまった…
確認画面も出ないのかよ

54 名前:デフォルトの名無しさん mailto:sage [2015/10/06(火) 16:53:27.84 ID:y3L8AxGi.net]
そりゃ簡単に戻せるからな

55 名前:デフォルトの名無しさん [2015/10/06(火) 17:01:54.18 ID:H4LWLTNp.net]
どうやって戻したらいいんだ?

56 名前:デフォルトの名無しさん mailto:sage [2015/10/06(火) 17:11:09.43 ID:rJsBL5Cg.net]
TortoiseSVN使ってるなら
Update to revisionするとか
Show logからUpdate item to revisionするとか

57 名前:デフォルトの名無しさん mailto:sage [2015/10/06(火) 17:25:06.67 ID:UaXFQD8w.net]
何の話?

な ん の は な し ?

58 名前:デフォルトの名無しさん mailto:sage [2015/10/06(火) 18:51:35.50 ID:b7EIiqyO.net]
>>51
どっちにしろアップデート要るからな

59 名前:デフォルトの名無しさん mailto:sage [2015/10/06(火) 19:33:53.24 ID:fQuxJtVK.net]
>>51
ほ、ほら、SVNが適切にマージしてくれてるでしょ(震え声

60 名前:デフォルトの名無しさん mailto:sage [2015/10/06(火) 21:04:13.40 ID:eiV44Wn/.net]
SVNはアプデ時に競合が合ったときの挙動がクソ過ぎる



61 名前:デフォルトの名無しさん mailto:sage [2015/10/06(火) 23:55:21.99 ID:EryYYvev.net]
クラスA内のメソッド内でクラスBのメソッド使用
クラスBのメソッド内でクラスAのメソッド使用

のような関係があるとき
依存性を減らすためにコンストラクタで相手のオブジェクトを受け取り、フィールドにセット

するような作りにしたいんですが、お互いにインスタンス作るには、もう片方が必要なため、作れません

こういうときはどういう作りにすべきですか?

テストコードを書くため、メソッド内で相手クラスをnewするのは無しでお願いします

62 名前:デフォルトの名無しさん mailto:sage [2015/10/06(火) 23:59:03.30 ID:8uRulS56.net]
相互参照しない作りにすべき

63 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 00:11:55.48 ID:T1RoiOzF.net]
Abstract Factoryを使えばいい

interface IHage { void DoHage(); }
interface IHoge { void DoHoge(); }
class Hage: IHage {
private IHoge hoge;
public Hage(Func<IHage, IHoge> hogeFactory) { this.hoge = hogeFactory(this); } }
class Hoge: IHoge { private IHage hage; public Hoge(IHage hage) { this.hage = hage; } }

これで new Hage(hoge => new Hage(hoge)) としてインスタンス作ればいい
factoryを変えればテスト時にHageにダミーのIHoge実装を食わせることもできる

64 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 00:20:04.54 ID:3pa+NQnn.net]
なるほど、デザパタ使っていけるんですね
ありがとうござました

65 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 00:24:26.54 ID:T1RoiOzF.net]
>>61訂正
new Hage(hage => new Hoge(hage))

66 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 12:27:46.25 ID:dQPZGG2o.net]
循環参照とか絵に描いたようなダメ設計だな

67 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 12:34:11.37 ID:40NgKpJy.net]
ボタンにイベントハンドラ登録したたけで循環参照になるのに何を言ってるんだ
ダメなのは循環参照ではなく2つのクラスが相互に密結合する設計

68 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 12:51:31.86 ID:dQPZGG2o.net]
>>65
VBスレでもそんなヨタを飛ばしてるバカがいたけど、.NETのイベントも
オブザーバパターンも実行時に参照を握るだけであってコード自体が循環参照してるわけじゃない

69 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 12:51:40.38 ID:wgVSxFSa.net]
クラスA内のイベントでクラスBのメソッドMethodBを呼び出す。

MethodB内では、クラスAのセッターを呼ぶ

みたいな処理は、どういう設計がいいんだろ?
>>61みたいにするのはよくない?

70 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 12:57:52.42 ID:dQPZGG2o.net]
>>67
そんなことをしたくなる(しなきゃならない)時点でもう詰んでる。
クラスの切り分け方が根本的に不適切だからそうなる。



71 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 13:13:24.70 ID:UidqiOp4.net]
だよな。どうしたらそんな糞設計ができるのか。

72 名前:65 mailto:sage [2015/10/07(水) 16:22:14.39 ID:lr4jJmHi.net]
>>66
そういうことを言ってるんだが
>>61は疎結合になってるからOK

73 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 16:36:06.20 ID:dQPZGG2o.net]
>>70
AがBに依存していないと偽装するという目的のためだけにインターフェイスIBを作ってBにかぶせても
AがBに依存している実態は何も変わらない。

そんなのただの欺瞞だ。
自分の欺瞞に自分で気づいてないなら自己欺瞞だな。

74 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 16:49:51.50 ID:9sdQQKJG.net]
はいはい
働けクソニート

75 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 18:25:15.82 ID:wgVSxFSa.net]
二つのクラスで相互参照があったら
間でやり取りするようなクラス追加したほうがいいってこと?

76 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 19:23:58.21 ID:F4sBdgXs.net]
そんな時、wpfの基本技術であるINotifyPropertyChangedを、普通のクラスから利用したりすると便利
上位のクラスはProperyChangedイベントを監視するだけでいいし、下のクラスはPrism使うだけ

77 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 19:55:05.52 ID:HxdUxcN3.net]
>>71
テスト時にダミーに差し替えるためだけの形式的なインターフェイスは普通に使われてるパターンだよ
嘘だと思うならVSのコードを逆コンパイルしてみたらいい

78 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 21:41:26.09 ID:sdI3RqNo.net]
下のようなデータがあり、BIDをgroupByして
2015年1月のnumの合計を出したいのですが、
どのように書けば可能でしょうか?

public class TDATA
{
public string BID { get; set; }
public DateTime day { get; set; }
public int num { get; set; }
}

static void Main(string[] args)
{
var hoge = new List<TDATA>();
hoge.Add(new TDATA() { BID = "A001", day = Convert.ToDateTime("2015/1/1"), num = 1 });
hoge.Add(new TDATA() { BID = "A002", day = Convert.ToDateTime("2015/1/20"), num = 2 });
hoge.Add(new TDATA() { BID = "A001", day = Convert.ToDateTime("2015/2/11"), num = 1 });
}

LINQを調べてみたのですが、条件が複数あると、
なかなか理解できず、よろしくお願いします。

79 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 21:58:51.87 ID:T1RoiOzF.net]
var groups = from x in hoge
where x.day.Year == 2015 && x.Month == 1
group x by x.BID into g;
foreach (var g in groups) {
 Console.WriteLine(“BID={0}, Sum={1}”, g.Key, g.Sum(x => x.num));
}

80 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 21:59:22.05 ID:T1RoiOzF.net]
>>77
訂正
into g は不要



81 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 21:59:54.31 ID:7k7eABWe.net]
var sum = hoge.Where( tdata => tdata.Year == 2015 && tdata.Month == 1 ).Sum( tdata => tdata.num );

82 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 22:01:55.66 ID:7k7eABWe.net]
修正
var sum = hoge.Where( tdata => tdata.day.Year == 2015 && tdata.day.Month == 1 ).Sum( tdata => tdata.num );

83 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 22:06:02.97 ID:T1RoiOzF.net]
>>79-80
それだとBIDでグループ化されてないよ
メソッド形式でSumまで一行で書くならこう
var sums = hoge.Where(tdata => 略)
.GroupBy(tdata => tdata.BID)
.Select(g => new { BID = g.Key, Sum = g.Sum(tdata => tdata.num) });

84 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 22:45:02.75 ID:NHKi3h4o.net]
すいませんC#というか設計についてなのですが
モデルというのはどのように考えればよろしいでしょうか

クローラーを作ろうとしていて、新着一覧のページを定期的にチェックしていて
新着一覧のページには投稿者のIDの一覧があります。

投稿者のIDから投稿者の詳細は別のページで参照する必要があるので、投稿者のIDをキーにしてローカルに保存しようと思うのですが
この時投稿者のモデルはIDだけで作るべきなのでしょうか、それともIDとその他名前等の情報を混ぜて作るべきでしょうか。

IDだけで作ると、投稿者という同じデータなのにIDだけのモデルと、名前等全ての情報があるフルデータのモデルの二種類が出来てしまいます。
名前等全ての情報でモデルを作ると、IDしか分からない段階では名前等のプロパティが空 (null?)になってしまいます。

後者の方が個人的にはいいかなと思うのですが、モデルという物に対して、このモデルはIDしか入っていない あっちのモデルは名前とか全部入っている。だから処理を分ける必要が・・・
というのは許されるのでしょうか

85 名前:76 mailto:sage [2015/10/07(水) 22:53:54.57 ID:sdI3RqNo.net]
色々とお答え頂きありがとうございます。

やはり、LINQを使えば短いコードで
実現出来るのですね。

LINQの理解が低いので、
参考にさせて頂きます。

86 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 23:09:28.07 ID:1Tzy0x1l.net]
>>82
わざわざ分ける必要は無いと思う。
とりあえず、IDから名前等々、全部定義したクラスを定義しておけばいい。

データ(オブジェクト)の状態をチェックするプロパティを持たせておいて、取得済みかどうか判定できるようにしておけばいいし、
取得できてない名前とかは、適当に空文字なり返すようにしておけばいい。

87 名前:デフォルトの名無しさん [2015/10/07(水) 23:09:28.12 ID:K9vCPUNu.net]
linqを使うと思考が衰えるから自力で組んだ方がいいぞ。
linq使いはツール使うことばっか覚えて地頭がクソなやつばっかだからな。

88 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 23:19:26.43 ID:zlFawCtp.net]
などと中卒が申してます

89 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 23:41:59.93 ID:T1RoiOzF.net]
>>82
そもそも、IDしかわからない中途半端な投稿者オブジェクトを
新着一覧クラスの外に晒す必要があるのかよく考えたほうがいいよ。
新着一覧クラスが投稿者ID文字列のコレクションを公開するのが嫌なら
新着一覧クラス自身に投稿者詳細をダウンロードしてくるメソッドを持たせたっていい。
もちろん賛否両論あるだろうけど、オブジェクト指向に拘るのであれば
オブジェクトから情報を取り出すのはなるべく避けて、オブジェクトに命令していくようにするのが基本。

90 名前:デフォルトの名無しさん mailto:sage [2015/10/07(水) 23:54:33.19 ID:ac/t6J3k.net]
>>82
許されるというか基本中の基本
すべてを1つのモデルに詰め込もうとするともれなく巨大な神クラスが出来上がるぞ
文脈に合った適度な粒度のモデルを必要な数だけ作るんだよ
まずはとりあえず取得と更新を分離しろ



91 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 00:27:57.95 ID:edkXggJo.net]
>>82
var page=await NicoUtil.DownloadPageAsync(url);
page.UserIds.Add(userId);

var user=GetProfile(page.UserIds[0]);
user.Id=3945887;
user.IsNicoNamaNushi=false;
user.Description="";

UserDB.Add(user);

92 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 00:51:12.57 ID:7dJhmaB1.net]
>>82
IDだけだったらそれはIDでしかないじゃんw
煽り抜きで愚問だね。

93 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 02:10:27.33 ID:n5xoJkAg.net]
よくわからないんだけど、Nameが空なのが嫌なら投稿者クラスを作るときに情報を取得すればいいんじゃないの?

94 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 21:32:59.63 ID:9yien46K.net]
C#でinnerHTMLのような各種の<タグ>を含んだHTMLの文字列から
タグを除去してテキスト

95 名前:セけを取り出す簡単な方法ありますか? []
[ここ壊れてます]

96 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 22:05:59.40 ID:O6ws46yp.net]
正規表現でやりなよ

97 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 22:22:34.18 ID:9yien46K.net]
>>93
例えば
<label>文字の中に<タグもどき>が有る場合が難しそう</label>
なので、正規表現以外で良い方法有りませんか?

98 名前:デフォルトの名無しさん [2015/10/08(木) 22:51:05.62 ID:vx3KIWo3.net]
xmlのライブラリ使えるんじゃないの

99 名前:デフォルトの名無しさん mailto:sage [2015/10/08(木) 23:35:33.54 ID:Xn3MaZ8G.net]
HtmlAgilityPack使え

100 名前:デフォルトの名無しさん mailto:sage [2015/10/09(金) 00:15:53.61 ID:oggkbSfr.net]
>>96
難しいですか?



101 名前:デフォルトの名無しさん mailto:sage [2015/10/09(金) 05:03:09.47 ID:DnhlxVQi.net]
>>97
ぐぐれよ
www.atmarkit.co.jp/ait/articles/1501/27/news140.html

102 名前:デフォルトの名無しさん mailto:sage [2015/10/09(金) 10:27:53.18 ID:oggkbSfr.net]
難しそうなので諦めました

103 名前:デフォルトの名無しさん mailto:sage [2015/10/09(金) 11:13:26.38 ID:oOXSiJnl.net]
なんだ釣りかよ
こんなところで釣りをするな
死ね

104 名前:デフォルトの名無しさん mailto:sage [2015/10/10(土) 13:55:22.44 ID:PcQrHOFV.net]
ドラッグしながら四角形を描画したいのですが
Rectangleだと始点より右下にしかドラッグ出来ません
全方向にドラッグ出来るようにしたいのですがどうすればいいのでしょうか?

ちなみに今のコードは
g.DrawRectangle(Pens.Black, startPt.X, startPt.Y, endPt.X - startPt.X, endPt.Y - startPt.Y);
で startPtはMouseDown時 endPtはMouseMove時のマウスポインタの座標です

105 名前:デフォルトの名無しさん mailto:sage [2015/10/10(土) 14:02:04.52 ID:xPCYj4vK.net]
(x,y,w,h)=(min(sx,ex),min(sy,ey),max(sx,ex)-min(sx,ex),max(sy,ey)-min(sy,ey))

106 名前:デフォルトの名無しさん mailto:sage [2015/10/10(土) 14:26:32.90 ID:S6gJKsnz.net]
ifたくさん書けばいい

107 名前:デフォルトの名無しさん mailto:sage [2015/10/10(土) 14:43:16.81 ID:PcQrHOFV.net]
>>102
出来ましたスパルタ先生!
まだ初心者なのでminとmaxが何か分からなかったんですがMathクラスだったんですね
ありがとうございました!

108 名前:デフォルトの名無しさん [2015/10/11(日) 17:20:59.98 ID:ZCWGzTkV.net]
xamlでDataContextを入れ替えた時に、そのDataContextのプロパティとバインドされているコントロールの表示が更新される条件はなんでしょうか
依存関係プロパティにすれば変わるのはわかっているのですが、煩雑なのでできれば避けたいと思っています
通常のCLRオブジェクトでは変わらず
INotifyPropertyChangedだと、オブジェクトそのものを入れ替えてしまうと変更を通知するタイミングがなくてうまくいかないような気がします
うまい方法はないでしょうか

109 名前:デフォルトの名無しさん mailto:sage [2015/10/11(日) 18:39:25.15 ID:o6WYp8Zd.net]
まず実際に試してみれば?

110 名前:デフォルトの名無しさん [2015/10/11(日) 19:03:36.29 ID:ZCWGzTkV.net]
INotifyPropertyChangedを実装したオブジェクトをただDataContextに入れてみましたが出来ませんでした
プロパティの値が変わってないのでどう通知すればいいのかもわからないのですけれども



111 名前:デフォルトの名無しさん [2015/10/11(日) 19:52:52.41 ID:ZCWGzTkV.net]
すみません勘違いしていました
ただのCLRオブジェクトを入れればきちんと反映されました
自作クラスをDependencyPropertyにしてUserControlとバインドさせて
その自作クラスで普通のCLRオブジェクトのプロパティをUserControlの中にあるコントロールとバインドさせたら
入れ替えても反映しなかったということのようです

112 名前:デフォルトの名無しさん mailto:sage [2015/10/11(日) 19:55:53.79 ID:KbfkRHMw.net]
List<T> array;
が有った時に、
array.Find(x => ...
array.Where(x => ...
などをやる場合に、探索を開始するindexを指定するようなことは出来ませんか?
100番目以降の要素から探索するなど。

113 名前:デフォルトの名無しさん mailto:sage [2015/10/11(日) 19:58:48.31 ID:EnuaFgoc.net]
>>109
Skip(99)

114 名前:デフォルトの名無しさん [2015/10/11(日) 20:02:59.11 ID:ZCWGzTkV.net]
ideone.com/wQHi11

説明できた気がしないので一応テストコードの一部を貼っておきます
DependencyPropertyをやめてただのCLRオブジェクト

115 名前:ノすると反映されるようになります []
[ここ壊れてます]

116 名前:デフォルトの名無しさん [2015/10/11(日) 20:08:39.48 ID:ZCWGzTkV.net]
ああわかりました
PropertyMetadataの初期値はstaticなので使いまわされるんですね
お騒がせしました

117 名前:デフォルトの名無しさん mailto:sage [2015/10/11(日) 20:40:49.95 ID:ijISB/Tc.net]
初心者すぎてぶちころされそうな質問してもいいですか?

118 名前:デフォルトの名無しさん mailto:sage [2015/10/11(日) 21:24:46.54 ID:lDigt0qz.net]
かもん

119 名前:デフォルトの名無しさん [2015/10/11(日) 21:29:23.08 ID:ijISB/Tc.net]
// xmlファイルを取得
XElement document = XElement.Load("sample.xml");

// ゲーム中のユニット情報をXMLの各要素へ書き込み
var query = (from p in document.Elements("Status")
select ★
query.Attribute("UnitID").Value = gameManager.unitStateList[i].unitID.ToString();

120 名前:デフォルトの名無しさん mailto:sage [2015/10/11(日) 21:32:27.27 ID:ijISB/Tc.net]
XElement document = XElement.Load("sample.xml");
var query = (from p in document.Elements("Status")
select ★
query★

すみません途中書き込みしてしまいました
しかもsageませんでしたすみません

LinkToXMLでXML操作を書きたいです
「Status要素内」の「ID」の値を「更新」したい、というのがやりたい事ですが
★の部分はどう書けばいいでしょうか?



121 名前:デフォルトの名無しさん mailto:sage [2015/10/11(日) 21:35:12.30 ID:ijISB/Tc.net]
連投すみません、間違えました

やりたい事はStatus要素内にある「全ての」要素について任意の値で更新を行いたい
というものです

多分、一つしか要素がなく、それを更新するのであればFirst()で取って
Attribute(要素名).Valueで更新できると思うのですが、全ての要素の場合はどう書けばいいのかが分かりません

122 名前:デフォルトの名無しさん mailto:sage [2015/10/11(日) 21:57:00.89 ID:lDigt0qz.net]
foreach( var status in document.Elements("Status") )
{
 status.ID = ...
 status.Hoge = ...
}

123 名前:デフォルトの名無しさん mailto:sage [2015/10/11(日) 22:30:24.51 ID:o6WYp8Zd.net]
全く些末なことだがElementsじゃなくてDescendantsじゃないかな

124 名前:デフォルトの名無しさん mailto:sage [2015/10/11(日) 23:23:06.77 ID:ijISB/Tc.net]
>>118
ありがとうございます。
参考にしてやりたい事自体はできました。

XElement document = XElement.Load("sample.xml");

IEnumerable<XElement> de =
from el in document.Descendants("Status")
select el;
foreach (XElement xmlDocument in de)
{
xmlDocument.Element("id").Value = sStar.id.ToString();
xmlDocument.Element("name").Value = sStar.name.ToString();
xmlDocument.Element("class").Value = sStar.class.ToString();
xmlDocument.Element("setting").Value = sStar.seting.ToString();
}
document.Save("sample.xml");

ただ正直、全然理解できていませんが(何でforeach内のこの処理がdocumentに反映するの?とか)

125 名前:デフォルトの名無しさん mailto:sage [2015/10/11(日) 23:37:17.15 ID:o6WYp8Zd.net]
突き詰めれば
class Hoge { public string Value { get; set; } }
foreach (Hoge hoge in list) {
hoge.Value = ...;
}
なんだからlistに含まれる各hogeのValue値が更新されるのは当然

XElement型のxmlDocumentとかやめてくれよ…

126 名前:デフォルトの名無しさん mailto:sage [2015/10/11(日) 23:41:50.91 ID:ijISB/Tc.net]
>>121
あーなるほど、意味が分かりました

>XElement型のxmlDocumentとかやめてくれよ…
ちなみにこれはなぜでしょうか?

127 名前:デフォルトの名無しさん mailto:sage [2015/10/11(日) 23:52:55.34 ID:o6WYp8Zd.net]
XMLの文脈ではdocumentは要素=elementとは違う意味を持ってる
XDocumentやXmlDocument型が存在する

128 名前:デフォルトの名無しさん mailto:sage [2015/10/11(日) 23:59:38.42 ID:ijISB/Tc.net]
>>123
なるほど、言われてみれば確かに
何度もありがとうございました

129 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 07:16:36.14 ID:oCa7NkmO.net]
>>110
ありがとうございました。
array.Skip(99) .Find(x => ...
とやると、100番目以降の要素の部分配列が作成されるのは分かったのですが、
その分、処理が遅くなるなどの心配は有りませんか?

130 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 07:21:01.92 ID:CF5nq9ai.net]
>>125
>100番目以降の要素の部分配列が作成される
されない
ラッパーのイテレータが作られるだけ



131 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 07:27:25.83 ID:xL7Yt/Nd.net]
>>109
本題とは関係ないけど、List<T>型にarrayとかつける馬鹿が目の前にいたらしばき倒してると思う

132 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 07:53:05.78 ID:oCa7NkmO.net]
>>126
ありがとうございました。
もう一つ教えてください。
int[] array = new int[] { 1, 2, 3 };
foreach (var i in array)
{
 i = 100;
}
iはforeach繰り返し変数なので割り当てられない
というエラーが出るのですが、どうすれば良いでしょうか?

133 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 07:57:11.52 ID:CF5nq9ai.net]
>>128
普通にループ
っていうかパフォーマンスクリティカルなところでない限りは配列をインプレースで更新したりしないで新しく作っちゃうのが今風

134 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 08:13:56.48 ID:oCa7NkmO.net]
>パフォーマンスクリティカルなところでない限りは配列をインプレースで更新したりしないで新しく作っちゃうのが今風
ということはクリティカルな場面ではforeachの中で配列を更新できますか?

135 名前:デフォルトの名無しさん [2015/10/12(月) 09:45:46.22 ID:4edlKvTH.net]
>>127
なんで?
型で正体分かるでしょ。
その為の静的言語だし。
名前が適切じゃなきゃリファクタリングすればいいだけだし、そんなことぐらいにしか突っ込めないお前の方が馬鹿だと思う

136 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 09:47:15.78 ID:L/1UOsEK.net]
LDPC符号をC#で使いたい。
エンコーダ、デコーダ共に。
C++のsourceなら落ちてるけど、ポインタとかシフト演算使いまくりで移植しにくい。
誰かたすけて

137 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 10:05:29.20 ID:bZxqtO6M.net]
>>131
> 名前が適切じゃなきゃ

そこに突っ込んでるだけだろ
いちいちこまけーこと言うなよ
って言うならわかるけど、問題ないだろって開き直るのもどうかと思う

138 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 10:11:31.09 ID:AiKl9MOi.net]
先生「どうして宿題をやってこなかったんだ!」
生徒「やってなきゃやればいいだけ。そんなことぐらいにしか突っ込めないお前は馬鹿」

139 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 10:44:36.42 ID:FazCyQUV.net]
「犬にねこって名前をつけるのはどうかしている」
「見りゃわかるんだから好きにさせろ」

結論:シーア派とスンニ派の戦いに日本は参加すべきじゃない

140 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 10:51:02.89 ID:L/1UOsEK.net]
( ・ε・)



141 名前:デフォルトの名無しさん [2015/10/12(月) 10:55:27.76 ID:4edlKvTH.net]
>>133
構造が違うだけで言葉自体の意味はさほど変わらない。
そして大半はiteratorでアクセスするし、インデックスのアクセスも同じ。
どこに問題があるのか教えて欲しい。

142 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 11:00:20.66 ID:ntYAJ4A2.net]
話して分からない馬鹿と会話するな
両方に命令してるからな

143 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 11:12:27.33 ID:UFM1lTS3.net]
> List<T> array
これでなんで怒ってるのかわからん。
C#のList<T>は普通の配列みたいなやつだよな
LinkedListと勘違いしてるの?

144 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 11:45:17.20 ID:5cnLZ8t5.net]
分からないなら口を挟むな
うぜえんだよボケナス

145 名前:デフォルトの名無しさん [2015/10/12(月) 11:47:29.04 ID:4edlKvTH.net]
だから問題を指摘しろと。
まぁできないと思うよ。問題ないもん。

146 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 11:52:34.15 ID:oVmZU7gX.net]
list(一覧)と言う言葉がコンピューターサイエンスに於いて
linked listの意味で使われarray(array list)とlist(linked list)という対比で用いられることが歴史的に多かったから発狂したんだろう。
連想配列の意味でハッシュが用いられるようなもの。
.NET Frameworkはそれを正しい意味の名前に直したんだから問題はない。

147 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 13:10:29.56 ID:Tj8wl52C.net]
>>130
できません

>>129が言ってるのは
普通は
int[] array = new int[] { 1, 2, 3 };
for( var i = 0; i< array.Length; i++ )
{
 array[i] = 100;
}
みたいにやれ。
パフォーマンスとメモリが気にならないなら
array = new int[]{ 100, 100, 100 };
みたいんでいいやん ということじゃね

148 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 13:37:05.60 ID:cGJWI2K1.net]
C#って、ガベージコレクションしますか?

149 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 13:49:06.51 ID:oCa7NkmO.net]
>>143
ありがとうございました。

150 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 15:00:36.92 ID:4P8sYT2X.net]
foreach(var i in (new int[]{1,2,3}).Select(x => 100).ToArray()){

Console.WriteLine(i);

}



151 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 15:03:51.40 ID:4P8sYT2X.net]
しまった
うえのarrayとかlistとか言ってるの読みながら間違えた
ToListで

152 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 15:39:30.41 ID:FazCyQUV.net]
せっかく作ったリスト捨ててどうするんだw

153 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 15:49:02.21 ID:E/TV++i+.net]
Taskのキャンセルがうまくいかないのですがどうすればうまくいくでしょうか? 
一回目はキャンセルできても2回目はなぜかデッドロックしてしまいます;;
以下にソースを張ります。
CancellationTokenSource tokenSource = new CancellationTokenSource();
private void button1_Click(object sender, EventArgs e){
var task1 = Task.Factory.StartNew(() =>{
var task2 = Task.Factory.StartNew(() =>{
tokenSource.Token.ThrowIfCancellationRequested();
for (int i = 0; i <=300000000; i++){
if (tokenSource.IsCancellationRequested){
return 0;
}
}
return 0;
});
if (task2.Result == 0){
task2.Dispose();
}
}, tokenSource.Token);
}

154 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 15:49:04.48 ID:IrWwZ6fO.net]
同じクラス名で<T>付きと無しの2つのクラスを作る理由は何でしょうか?
一つのクラスにメソッド2つを用意すればいいだけなのに

155 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 15:51:43.51 ID:wjSQdsNO.net]
用途によるだろうけど、普通は、ジェネリック対応のクラスだけで間に合う。

156 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 16:10:18.51 ID:DarJ/ebZ.net]
こういうのは書くことがある
class Hoge { public static Hoge<T> Create<T>(T value) { ... } }
class Hoge<T> { ... }
var hoge = Hoge.Create(...);

157 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 16:37:22.39 ID:S0ggbD4h.net]
>>149
そのコードにデッドロックするところなんて無いと思うけど。
CancellationTokenSourceは一回キャンセル操作したら再使用できないの分かってる?

158 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 17:08:42.71 ID:t3lNWbaJ.net]
>>150
void Method<T,U>(T hoge) where T : Hoge<U>{}
みたいなメソッドだと、Uのせいで型推論が機能しなくなるので、
Hoge<T> : Hogeという形を作っておくと

void Method<T>(T hoge) where T : Hoge{}にできて型推論が効くということだと思う

159 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 17:29:26.78 ID:IrWwZ6fO.net]
うおおおお!説明が難しすぎてわからない!!

ILSpyで見るとHogeクラスとHoge<T>クラスのどちらも
HogeBaseを継承していて
HogeBaseのメソッドは引数付きなんです
そしてHogeクラスのメソッドはbaseに対して
nullを渡しています

HogeBaseをわざわざ2つのクラスに分割する意味がわかりません
HogeBaseをそのまま使わせるようにすればいいじゃないですか!
って思うんですけど、説明された型推論の関係なんでしょうか?

160 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 17:35:54.46 ID:IrWwZ6fO.net]
利用する側は
new Hoge(Action);
new Hoge(Action<T>);
という感じにできたほうが楽じゃありませんか?
それを
new Hoge(Action);
new Hoge<T>(Action<T);
という風に強制させるのはなぜなんでしょう



161 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 18:00:28.51 ID:t3lNWbaJ.net]
>>156
それは多分型推論は関係ないと思うけど、聞いた感じだと
Hoge<T>{ T obj; }みたいなメンバ変数があり、それをHogeBaseに渡しているけど
Hogeの場合はそれがないのでnullを渡してるっていうような
まあ筋の通った話に聞こえるなあ

HogeBaseだとTで型を決められないからキャストとかが不便で
Hogeがないといちいちnullを入れてやらなきゃいけなくなって不便みたいなことなんじゃないの

162 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 18:41:03.54 ID:E/TV++i+.net]
>>153

CancellationTokenSourceが一回しか使えないのは
知りませんでした。
再起は出来ないんでしょうか?
デッドロックですが使い方を間違えてまして正しくは
一度キャンセルをするとTaskが動かなくなるような
感じです。resultで実際sourceにはokと出るようにしてますがなにも反応がなくなりました。
ボタン復帰もしません

163 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 19:08:20.89 ID:wjSQdsNO.net]
>>149
なんでTaskの中でTask作ってんの?
継続タスクにしたいなら、ContinueWithでつなげれば良いだろう。
あと、そのケースなら Task.Factory.StartNewじゃなくて Task.Runを使ったほうがすっきりするだろう。
ちなみにTaskのDispose()は、無理に呼ぶ必要はない。むしろ無闇に呼び出したらタイミングによっては、厄介なことになる。

>>158
CancellationTokenSourceは、一度限り、再度使いたいならCancellationTokenSourceを作り直すしかない。
キャンセルされてたら、tokenSource.Token.ThrowIfCancellationRequested()が例外を吐いて強制終了するだけなんで
ボタンが復帰しないのは当然のこと。

164 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 19:27:19.47 ID:E/TV++i+.net]
>>159

ありがとうございます。
あ、継続タスクでも同じ動作をしますか
すいませんうっかりしていました。
TaskRunは使いたいのですが環境の問題で駄目でした。

キャンセルの方はならパブリックにするのではなく
プライベートにしてやってみてるのですが今度はキャンセルが出来なくなりました。。。
Taskキャンセルが難しいです

165 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 19:51:26.84 ID:wjSQdsNO.net]
>>160 たぶんやりたいことは、こんなところか。

private CancellationTokenSource cancelSource;
private void button1_Click( object sender , EventArgs e ) {
if( this.cancelSource != null )
this.cancelSource.Cancel(); // まだキャンセルされてなければキャンセル要求

this.button1.Enabled = false;
this.cancelSource = new CancellationTokenSource();
var token = this.cancelSource.Token;

Task.Factory.StartNew( () =>{
for( int i = 0; i < 100000; i++ ){
token.ThrowIfCancellationRequested();
Thread.Sleep( 100 );
}
} , token )
.ContinueWith( task => {
// 継続タスク(UIスレッドに切り替わって実行される)
// キャンセルされようとも正常に完了しようとも、例外が発生しても実行される。
this.button1.Enabled = true;
} , TaskScheduler.FromCurrentSynchronizationContext() );
}

private void button2_Click( object sender , EventArgs e ) {
if( this.cancelSource != null ) {
this.cancelSource.Cancel(); // キャンセル要求
this.cancelSource = null;
}
}

166 名前:デフォルトの名無しさん mailto:sage [2015/10/12(月) 20:15:07.87 ID:E/TV++i+.net]
>>161
ありがとうございます。
参考例は非常に助かります。
早速やって見ます。

167 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 01:05:59.89 ID:41s2HnED.net]
>>161
どうやらCancellationTokenSourceの扱いをミスっていたみたいで
>>149の方の仰るとおりあのやり方ではブロック内で再生成してないので
一回しか扱えずこれで詰まっていたようです。
今回の参考例非常に助かり無事に期待した動きをしています。
ありがとうございました。

168 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 04:02:33.87 ID:P4Y/UxqF.net]
WebClientを使ってDownloadString(url)でhtmlを読み込む場合、
事前にそのurlに合わせてエンコーディングを指定すると上手く行くのですが、
UTF-8を指定してSJISのヘージを読むと当然文字化けしてしまいます。
読み込むページのエンコーディングを自動的に認識するなどの機能はありませんか?

169 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 04:44:41.46 ID:7dOTeKt2.net]
ありません。

170 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 05:03:23.35 ID:P4Y/UxqF.net]
>>165
じゃあどうすれば任意のurlを文字化けせずに読み込めますか?



171 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 06:43:34.47 ID:YzZ6qWCc.net]
そりゃあ…DownloadDataでbyte[]を取ってきて
自分でエンコーディングを推定してStringに変換するに決まってんだろ
言わせんなよ恥ずかしい

172 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 08:45:24.81 ID:xr5l46tc.net]
相手サーバが有能ならDownloadDataした後のResponseHeadersからContent-Typeを参照することもできるぞ

173 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 09:06:53.64 ID:P4Y/UxqF.net]
>>167 >>168
確かにこの方法で出来そうなのですが、URLによっては
リモート サーバーがエラーを返しました: (500) 内部サーバー エラーです
Status ProtocolError
と出る場合が有りますが。

174 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 09:17:24.10 ID:IPzu3dLL.net]
ブラウザでは読み込めるならCook

175 名前:ieが正しく設定されてないとかだろ
決まった値でいいならブラウザのデバッガで通信を監視してその通りにリクエスト送ればいいけど、
セッションが必要ならRubyのMechanizeみたいなの使わないとすぐに動かなくなる
非常に面倒だから本当にそのページが重要なのでない限りは諦めた方がいい
[]
[ここ壊れてます]

176 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 10:52:29.13 ID:P4Y/UxqF.net]
>>170
情報ありがとうございました。
RubyのMechanizeというのを少し調べてみたのですが、C#でこういうのは
ありませんか?

177 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 11:18:31.92 ID:IPzu3dLL.net]
Selenium使えば?

178 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 12:02:46.15 ID:7dOTeKt2.net]
>>168
あとは、一旦、ASCIIで読み込んで、HTMLの<META>タグ判定するぐらいか。

179 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 19:36:16.73 ID:bwylg/oX.net]
初学からc#及び.NETが一人前と言われるレベルになるにはどんな勉強していったらいいかな?

1.オブジェクト指向の基礎を学ぶ(参考書の選択肢はJAVAのが多かったのでJAVAを選択)

2.(今のところWEBがメインなので)HTML,CSS,javascriptの基礎

3.HTTPやTCP/IPの基礎

4.C#3.0以降の技術(LINQ等)

5.デザインパターンを一通り網羅

6.リファクタリングの手法を習得

7.CODE COMPLETE等を読んで基礎固め

8.ASP.NET MVCの基礎、MVC等のレイアー層の理解

今のところこんな感じで進めてるけど
まだまだ足りない所ばかりで成長遅い。

どこかでC言語の勉強もしなきゃいけないと思ってるし...

180 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 19:45:39.68 ID:xI0jh4Ci.net]
まずゴールを明確にする
具体的にどんな仕事をして誰に一人前と言われたいのか
SIerでドカタやるだけならそんだけできたら一人前どころかエースだ



181 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 19:54:30.96 ID:7dOTeKt2.net]
>>174
いろいろ言いたいことはあるが、C#ならサイトなら未確認飛行の人のサイトをお勧めする。
ArrayListとか使ってる入門サイトは、ゴミ以下だ。何の役にも立たないから気をつけろ。
非同期処理でThread(生スレッド)使ってる解説もゴミ以下だから、窓から投げ捨てよう。
C#とJavaと同じとかいう奴に出会したら、にわかなので軽くスルーしよう。

c#使いが覚えるべきことは、
拡張メソッドとIEnumerable<T>の関係性だろう。
 こいつを理解できれば、LINQは、理解できたもの同然。
INotifyPropertyChanged
 WPFなどのMVVMを理解する上で欠かせない。
Taskとasync , await
 非同期関係は、だいたい、これで間に合う。
あと、余裕ができれば、Rx周りに手を出しても良いだろう。

182 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 20:11:30.28 ID:YzZ6qWCc.net]
不法投棄犯の言うことを信用して良いものか…

183 名前:デフォルトの名無しさん [2015/10/13(火) 20:16:29.39 ID:P4Y/UxqF.net]
C#で関数の引数でrefを使えばCのポインタのような
動作になると思うのですが、文字列、配列、構造体、クラスなど
受け渡しする時にrefを使うと効率良くなって動作が速くなりますか?

184 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 20:34:16.68 ID:Jlc+RBff.net]
>>176
そういえばゴールはあまり明確にしていませんでした。
とりあえず目標?は
・新しいシステムを作るときに、良い設計手法、技術を用いてそれを形にできるスキルを身につけたい
・別の会社にいっても、通用するような基礎を身につける

ですね。正直今のSIer企業には、ずっといたくないと考えているので
転職前に早くスキルを身につけたいところです。

>>177
アド

185 名前:oイスどうもです。
LINQ周りの考え方については結構調べました。
INotifyPropertyChangedや非同期関連は、まだ浅いので詰めて行きたいです。
Rxまで早くたどり着きたい...
[]
[ここ壊れてます]

186 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 21:32:56.02 ID:4DY03Csk.net]
>>178
状況次第だ
しかしそのような質問が出てくる時点で君には時期尚早と言える

187 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 21:37:37.13 ID:IPzu3dLL.net]
>>179
個人的には関数型言語覚えるのがお勧めだな
実務で使わないとしても、プログラミングセンスを磨くには最適
細かい技術なんて基礎さえできてればその都度ググればいいこと

188 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 21:53:19.65 ID:3EVIu19y.net]
>>178
C#においては「参照型」と「値型」の区別が重要だよ
参照型はclass、値型はstructやプリミティブ型だよ

189 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 22:14:15.51 ID:JgCmGigF.net]
↑これがこの板を象徴するアスペなレス

190 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 22:20:08.70 ID:P4Y/UxqF.net]
>>182
それは知っているのですが、
そういう前提で、とりあえずrefを入れまくっておけば
速くなることはあっても遅く成る事は無いですか?



191 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 22:24:23.58 ID:IPzu3dLL.net]
>>184
参照型は遅くなる
元々ハンドルを渡してるだけなのにその上余計な間接アクセスが入るから

192 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 22:47:11.18 ID:7dOTeKt2.net]
refの使い道は、そもそも速度を稼ぐためではないからな。
16バイト以上の構造体(値型)であれば、コピーコストを抑えることができるので若干、速くなる。

class A {
  string hoge;
  void Run() => Set( ref hoge );
  void Set( ref string n ) => n = "aaa";
}

こうすれば、Setメソッドで hogeが書き換わるようになるだけ。
これを利用したのがLazyInitializer.EnsureInitializedあたりの遅延初期化あたり。

また、仮に速度向上が見込まれるとして何でもかんでもrefを使うと可読性が悪くなるだけでなく、余計なバグの温床になるだろう。

193 名前:デフォルトの名無しさん mailto:sage [2015/10/13(火) 23:33:34.52 ID:wNVuw2e3.net]
>>174
1しかやってないけど年収一千万超えてるわ俺

194 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 00:11:28.33 ID:9EHqXlxG.net]
俺はrefを使ったことがない・・・

195 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 00:15:52.35 ID:6bQwcZBR.net]
>>188
それが普通。
少なくとも好き好んで使うような物じゃないでしょ

196 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 01:11:41.08 ID:3R4nuN13.net]
refはメソッド内で引数を書き換えるよってことだから早々使わない
outは使うことがあるかも
複数値リターンがあればいらないんだけどね

197 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 01:41:54.81 ID:KX7liTZS.net]
DirectXやWinAPIをやらないなら使わないよねー

198 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 02:17:16.60 ID:zAeiUrE8.net]
XNAの算術ライブラリはref祭りじゃったのう(遠い目)

199 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 09:46:15.40 ID:Kzgl2aXh.net]
遅延初期化系のメソッド使うときは、ref使う。
System.Threading.LazyInitializer.EnsureInitialized( ref x );みたいなやつ

200 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 10:43:03.02 ID:/REmo4T1.net]
お前らすげー詳しいけどPG?SE?
周りに詳しい人いないから誰にも聞けないわ



201 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 10:59:37.46 ID:H7Zj+QeL.net]
大抵の情報はググったら出てくるだろw

202 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 13:27:10.88 ID:C7hQw/KG.net]
そーなんだけども、ググると古い情報の方が上位に来やすい罠が

203 名前:デフォルトの名無しさん mailto:sage [2015/10/14(水) 16:31:12.31 ID:aOACpiFq.net]
refはINotifyPropertyChangedの実装で使うのを見た時になるほどと思った
stackoverflow.com/

204 名前:questions/1315621/implementing-inotifypropertychanged-does-a-better-way-exist []
[ここ壊れてます]

205 名前:デフォルトの名無しさん mailto:sage [2015/10/15(木) 18:28:08.01 ID:2u28QwcF.net]
string line = "fjlast●je■woi▲utgal;jgas";
do{
 int pos = line.IndexOfAny(new char[] { '●', '■', '▲' }, pos);
 if(pos==-1)
  break;
 pos++
while(true);
こういう探索をする場合、上例のように
new char[] { '●', '■', '▲' }
をループの中に入れると毎回newされて効率悪くなったりしますか?

事前に
const array = new char[] { '●', '■', '▲' };
として、ループの中では
int pos = line.IndexOfAny(array, pos);
とすべきですか?

206 名前:デフォルトの名無しさん mailto:sage [2015/10/15(木) 18:37:34.62 ID:fomBTPP1.net]
原則としてはそうね
だけど全体の処理から考えると誤差以下よ

207 名前:デフォルトの名無しさん mailto:sage [2015/10/15(木) 22:37:02.52 ID:2u28QwcF.net]
>>199
ありがとうございました

208 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 08:47:07.62 ID:b8m6XFK1.net]
構造体矩形を作ってメンバーが座標とサイズだった場合直生Xを変更したり出来ないのか・・・不便

209 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 08:54:54.81 ID:FN3G7dO/.net]
プロパティ実装すればそれっぽくなるだろ
どうしてもフィールドを直接弄りたいなら StructLayout(LayoutKind.Explicit) + FieldOffset でunion相当が実現可能

210 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 12:06:28.13 ID:HFus6TsS.net]
RECT定義しちゃえばいいだろ
って話じゃないのか?
意味不明



211 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 12:08:03.62 ID:TjssbBGs.net]
違うかもしれんけど、>>201が言ってるのは別のクラスのプロパティの型がRectだった場合のことかね。
そうだとしたら、でもそこが値型のメリットでもあるわけで、まあちゃんと理解して使えとしか。

212 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 12:16:22.10 ID:b8m6XFK1.net]
>>204
そういう事

213 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 12:21:07.89 ID:TjssbBGs.net]
>>205
参照型でRectを作った場合でも、まともなセンスの人なら>>201みたいなことができないように講じる
(Rectをイミュータブルにする)わけで、同じなんだけどね。

214 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 12:44:09.96 ID:b8m6XFK1.net]
GCは時間掛かるから出来るだけ値型を使ったほうがいいって聞いたんだけどどうなの

215 名前:デフォルトの名無しさん [2015/10/17(土) 15:11:26.94 ID:y+IPLvAO.net]
川俣晶のソースコードを見ると何かムカつきます
いったいどうしたらいいんですか?
(´・ω・`)

216 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 15:21:06.30 ID:c8KbfCFX.net]
>>208
それは中二病の症状です。
20歳を超えて発症した場合は恐らく一生治りません。
定めだと思って諦めて一生青春しててください。

217 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 16:01:56.58 ID:HUgpKArY.net]
アトミック処理間におけるタスクスイッチングについて5行以内で語って下さい

218 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 16:32:12.70 ID:YVKz2Gue.net]
>>207

短寿命オブジェクト用のGen0GCはクソ速いから、
クラスをnewするならするですぐに使い捨てるのがよい

219 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 16:54:05.33 ID:ceUp4SbX.net]
>>211
あ、マジか…
60FPSなら16msで一周しないといけないけどGCは30msくらい掛かるって書いてあったから心配してた

220 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 20:48:01.48 ID:lEhwHPlH.net]
全然関係ない話だけど、Windows10騒動とかマイクロソフトやばくなってきたな
Windows崩壊とか勘弁ですよ



221 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 21:30:39.49 ID:Qv9BWxTI.net]
マイクロソフト帝国は崩壊の渦中
アップルも新しいものを生み出せずに飽きられたら将来はどうなるかわからん

222 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 22:12:12.95 ID:1b1MshO0.net]
Win10騒動より、.NET4.0〜4.5.1狙い撃ちのサポート切れの方が怖い

223 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 22:13:36.87 ID:ixXAzgg3.net]
>>215
狙い撃ちってどういう意味?

224 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 22:14:17.57 ID:lZc14wWH.net]
>>215
詳し区

225 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 22:30:15.39 ID:1b1MshO0.net]
>>216-217
いや、単に.NET4.0〜4.5.1が来年の1月12日にサポート切れて4.5.2以外サポート対象外になるだけの話なんだわ
www.atmarkit.co.jp/ait/articles/1501/23/news031.html
.NET Framework 3.5 SP1および3.5.1
.NET Framework 4.5.2

3.5.1以前は下位バージョンが内包されているからいいんだが、4.0〜4.5.1は4.5.2入れろ
必要ならば動作検証し直してねとMSが明言しているから扱い面倒そうだなと

226 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 22:37:10.95 ID:FN3G7dO/.net]
そういうの気にするようなところだと3.5→3.5.1とかでもどのみち大騒ぎだよ
.NETのマイナーバージョン間非互換ってインストールパスに依存してる糞アプリがあるかもしれないとかそんなレベルだし

227 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 22:42:15.32 ID:ixXAzgg3.net]
>>218
現時点で4.6出ているけど4.5.2はずっとサポートされると思っていいんだろうか
それとも今後新バージョンが出るたびに動作検証し直さなければならない?

228 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 22:43:10.59 ID:S84Ssc/e.net]
噂を信じちゃいけないよってか

229 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 22:49:06.59 ID:/7+5znpF.net]
>>218
仮に4.5.1がサポートされてたらWin10に上げても検証しなくていいのか?
どう考えても.NETのバージョンなんかよりWin10へ上げること自体の方が遥かに問題になる可能性が高いだろ

230 名前:デフォルトの名無しさん mailto:sage [2015/10/17(土) 23:23:15.70 ID:ixXAzgg3.net]
>>222
Win10に上げるのは自己責任じゃねーの
4.5.2には上げざるを得ないから対応しろと言われかねない



231 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 01:04:40.12 ID:/DhocndZ.net]
バージョンがうんたらとかいうよりも、マイクロソフトの信用がなくなってしまったという感じだよ

232 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 12:54:14.13 ID:i95LMF8H.net]
interfaceと自動化テストを適切に使えば互換性なんて大した問題にならないだろ
C#使いはみんなアホなのか

233 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 13:00:46.03 ID:ivrEFHM8.net]
自動テストなんてファンタジーですよ
✕C#使いはアホ
○日本のITはアホ

234 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 13:26:26.09 ID:rT2sf8QY.net]
そんなことよりいつタプルとレコードとパターンマッチが使えるようになるんだ

235 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 16:09:43.90 ID:/DhocndZ.net]
it.srad.jp/story/15/10/16/214241/
マイクロソフト工作員暴れすぎだろ、見境なくなってる
末期症状だな

236 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 16:13:20.14 ID:/DhocndZ.net]
タプルもいいけど匿名型を型宣言させてほしい
こまごましたクラスで名前空間汚れる

237 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 16:36:13.19 ID:tIhTJhT+.net]
>>228
重症の2ch脳だな。酷い馬鹿だ。

238 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 17:53:35.54 ID:EteQ/5LB.net]
VSって#hogeの自動補充機能ないの?

239 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 17:54:02.78 ID:rT2sf8QY.net]
匿名型をちゃんとタプルにしておけば「C#でTupleをnewするコードがクッッソダサイww」
とか馬鹿にされることもなかったのにな

アンダースは細かい使い勝手を改善するような変更に対してすごく保守的だった
拡張メソッドもstaticクラスでしか作れないみたいな嫌がらせを受けたままだし

240 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 17:56:00.48 ID:hcyPsAl4.net]
拡張メソッドはそこいらにばらまかれるより一箇所にまとめとかれるほうがいい気がするからいまのままでいい



241 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 18:22:39.24 ID:rT2sf8QY.net]
recordにパターンマッチがくればデータと手続きの分離が進むだろうから
データクラスと別に手続きクラスを用意するのは自然になっていくと思う
ただ手続きを探すためには圧倒的に.を打ってインテリセンスに名前が出たほうが便利だから
拡張メソッドは第一線で使われるものになっていくだろう

それで拡張メソッドをstaticクラスにまとめること自体はいいんだが
問題はstaticクラスの内部で型が作れないことなんだよなあ
多値を返すためにoutみたいな奇道を使わない場合structを定義しないとどうしようもないが
トップレベルに書くと名前空間が汚れすぎる

まあそれもタプルが来れば解決か

242 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 21:06:11.60 ID:O3txSH0M.net]
ITの技術書籍って8割方意味なくない?
ほとんどはネットでググれば出てくるし

唯一金出して買うって書籍はせいぜい洋書の翻訳版くらいだよな?

243 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 21:10:59.06 ID:Fyu9IAr8.net]
初心者にとって意味があるんだろ

自動アップデートが実装されない限り技術書籍は買う気にならないが…

244 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 21:11:18.08 ID:S+d/GOeW.net]
経験に基づく実践的な内容なら価値はあるんだが、
大抵の技術書の著者って技術評価みたいなことしかしてない奴ばっかりだから
ほんとにネットでググったtipsが羅列されてるだけみたいなのが多い

245 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 21:13:06.08 ID:1K54QMcp.net]
>>235
独学や素人だと結構本が理解の入り口になると思うよ
ただ、記述ミスが結構あって逆に理解に苦しむことがあったり、
著者が理系脳で、わからない人にわかるように表現されてない
わかるひとが読めばわかるが、わからない人が読むとさっぱり・・・
悲しいかな、購入者はわからない人がほとんどなのだけどね
で、ネットの情報や複数の本で補完せざるを得ない
そういう意味ではネットでいいというのもうなずけるけど・・・

246 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 21:26:39.43 ID:O3txSH0M.net]
初心者にとっては意味があるってのも正直分からん
初心者だってググれば知りたい事出てくるんだから、書籍を買う意義の在処が無いでしょ

247 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 21:41:31.99 ID:CUxV7ZEj.net]
>ただ、記述ミスが結構あって逆に理解に苦しむことがあったり、
>著者が理系脳で、わからない人にわかるように表現されてない
>わかるひとが読めばわかるが、わからない人が読むとさっぱり・・・

このへんはネットの情報でもたいして変わらんと思うが。
加えて、ネットだと

・断片的なトピックしか書いてない
・そもそも間違っている

ってのも割合としては多くなるな。

248 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 22:47:11.00 ID:Fyu9IAr8.net]
初心者はぐぐらない
もしくはぐぐるためのキーワードを知らない

249 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 23:12:02.85 ID:0PlCKIO2.net]
書籍のメリットは
情報が主題に沿ってまとまってる
その情報が編集されて主題にそって提示されている
の2点

つまり編集されていると言う事に意義を感じないなら価値はないな

250 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 23:17:11.53 ID:ZeZpTvFb.net]
C#の文法とかデスクトップアプリに関してならネットの情報だけでも十分なんだが
ASP.NET関係だとネットだけだと断片的過ぎてな
初心者は本を買わざるを得ないだろう
おまけに文法本と違って本の選択肢も少ないという問題もある



251 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 23:21:12.01 ID:1MrL9p77.net]
>>243
俺はこの一年でvb、c++、c#、asp.net、js、php、その他全部ネットで習得したよ。一冊も本は買っていない。

252 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 23:26:42.33 ID:/DhocndZ.net]
サーバー側は、C#というかWindowsで組むことないからな、開発者の絶対数が少なくて情報もないって感じだ
自分も作っているのはデスクトップアプリオンリーだし

無料のレンタル鯖にC#で組めるcgiとかできたら嬉しいんだけどね(←時代に置いて行かれたおっさんw)

253 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 23:30:25.33 ID:ZeZpTvFb.net]
>>245
来年登場予定のASP.NET5はリナックスでもMACでも動くという触れ込み
フレームワークがオープンソースの.NET COREに代わる
これで普及すればいいんだがな

254 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 23:40:24.72 ID:FU6fHshJ.net]
ASP.NET5はMVC系ベースで以前のものとは互換性ないんだけどね
MVCの方でいいんなら今でもMonoで動くよ

255 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 23:46:53.39 ID:1MrL9p77.net]
>>246
iisもlinuxに移植されるの?

256 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 23:47:34.93 ID:/DhocndZ.net]
難しい事はええからpublic_html/binあたりにcs書いて、そいつがSystem.Console.OutにHTML書いたらOKにしてください
軽くperl書くノリくらいで、って感じですw

257 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 23:50:52.54 ID:ZeZpTvFb.net]
>>248
iisが移植されることはないでしょ
むしろASP.NET5はwebサーバー依存じゃなくなってるのでアパッチでも何でも動くのが売り

258 名前:デフォルトの名無しさん mailto:sage [2015/10/18(日) 23:55:05.84 ID:1MrL9p77.net]
>>250
iisの設定画面に慣れているがapacheあまり知らないので不安だなあ

259 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 00:26:53.06 ID:VNgGX25K.net]
入門書にしろ、入門サイトにしろ、初心者は余計なことを考え出して深みにはまる奴いるよなw

260 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 00:29:12.84 ID:kIMtGLET.net]
ペアプログラミング()もそういう意味ではありなのかもな



261 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 00:48:22.49 ID:pvWtLvxK.net]
>来年登場予定のASP.NET5はリナックスでも

何を言ってるんだこのばかは

262 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 00:53:57.97 ID:cS+kHoUQ.net]
>>254
馬鹿はお前

263 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 02:29:19.17 ID:/AkA90sI.net]
asp.net5のホスティングはkestrelがデファクトになりそうかな。
ただ、SSL関連とか、機能が足りないところがあるので、そこはnginxとかapache(+middleware)と組み合わせて使う必要があるかも。

264 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 03:18:42.76 ID:D6E0OVv3.net]
メンドクサそうだな

265 名前:デフォルトの名無しさん [2015/10/19(月) 05:27:57.56 ID:c9jTiL6V.net]
Bitmapオブジェクトの使い方がよく分かりません
詳しく教えてください
(´・ω・`)

266 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 06:15:38.35 ID:NjHqWI/s.net]
public void Hoge<T>(T t)

ジェネリックメソッドの
引数にインターフェースを入れさせないようにできませんか?
もしくはインターフェースならreturnするような処理を書きたいです

メソッド内で更にTを使ってインスタンスを生成するので
インターフェースだと問題なのです

267 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 06:37:27.02 ID:E3V4kHKJ.net]
>>258
いやです

>>259
public void Hoge<T>(T t) where T : new()
とか

268 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 07:05:12.11 ID:NjHqWI/s.net]
>>260
制約条件というのがあったんですね
ありがとうございます

269 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 07:26:11.69 ID:v19BRXDY.net]
void Hoge<T>(Func<T> factory) {
var t = factory();
のようにデリゲートを渡す手もある
これならインターフェースで問題ないし間接的にコンストラクタに引数渡すこともできる
Func<T>のかわりにLazy<T>でもいいけどやってることは同じ

270 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 10:54:18.39 ID:NjHqWI/s.net]
>>262
デザインパターンですよね?そちらの方がいいのかな?
public static IEnumerable<T> Select<T>(string dbFile, string tableName, string ptn) where T:new()
{
using (var connection = GetConnection(dbFile



271 名前:))
{
connection.Open();
try
{
var sql = "select * from " + tableName + " where name like '%" + ptn + "%'";
return connection.Query<T>(sql);
}
catch (Exception e)
{
Console.WriteLine("SelectError={0}",e.Message);
}

return null;
}
}
こんな感じのdllを作っている途中なんですが
[]
[ここ壊れてます]

272 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 10:56:15.66 ID:v19BRXDY.net]
そんなもんdapperでいいだろ
作る意味なし

273 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 11:15:29.47 ID:PGvR7XY7.net]
そもそもInterfaceだけ排除したいなんて要件に疑問を持った方がいいと思うよ

274 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 11:21:13.07 ID:kIMtGLET.net]
むしろ入力を制限するためにインターフェース使うパターンの方が多いと思ってたわ

275 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 16:42:20.38 ID:NjHqWI/s.net]
>>265
Interfaceだと
return connection.Query<T>(sql);
ここでエラーになるんです
動的に生成されたあらゆるdbのテーブルにアクセスできるような
関数が書きたいんですが難しくて試行錯誤してます

276 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 17:04:32.33 ID:6CTsRO/G.net]
ウインドウズストアアプリって
難読化とかしなくてもILは読めないものなんですか?
無対策でいけますか?

277 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 17:08:11.74 ID:D6E0OVv3.net]
うおぅ、C#開発中止になった
うぶんつ行き

マイクロソフトもぅあかん・・・なんやってんだよこいつ等

278 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 17:35:49.86 ID:h/O11m5h.net]
>>268
読まれると困るロジックはクラウドにポイしなさい

279 名前:デフォルトの名無しさん [2015/10/19(月) 17:38:41.70 ID:bIFzKXU5.net]
Bitmapオブジェクトを生成したらBitmapクラスにCreateGraphicsメソッドは無いから
GraphicsクラスのFromImageメソッドを使ってBitmapオブジェクトを渡すとGraphicsオブジェクトを返してくれるんかぁ
FromImageメソッドってなんでFromImageって名前なんですか?
何か許せんなぁ
(´・ω・`)

280 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 17:40:34.47 ID:yeB94VZ+.net]
>>269
風説の流布
MSに訴えられても知らないよ



281 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 17:44:09.65 ID:6CTsRO/G.net]
>>270
What the...

282 名前:デフォルトの名無しさん [2015/10/19(月) 17:44:59.65 ID:bIFzKXU5.net]
C#よりプチコン3号のほうが
よっぽど分かりやすいわ
(´・ω・`)

283 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 18:35:23.16 ID:E3V4kHKJ.net]
>>274
プチコンやってろよ睾丸AA野郎

284 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 22:12:15.18 ID:ZagPftKb.net]
コマンドソフトもスプリクト言語じゃ作りにくいけど、自分用の自動化ツール作りたい時とかには便利だな
画像の余計な透明削除ツール作ったら画像編集作業が5倍くらい早くなった

285 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 22:30:31.92 ID:v19BRXDY.net]
Winでスクリプト使うならPythonだな
設計思想でC#と共通する部分が多いからC#使いには馴染みやすいはず

286 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 22:41:25.04 ID:ZagPftKb.net]
ただスプリクト言語苦手だからc#でいいや…
3時間あれば自動化ツールくらい作れるし
動型言語は本当に無理

287 名前:デフォルトの名無しさん mailto:sage [2015/10/19(月) 22:55:04.13 ID:v19BRXDY.net]
スクリプト言語使うかはともかく、画像の余白削除なんかimagemagick使ったらコマンド一発でできるぞ
さらにそのコマンド実行も自動化しようすればスクリプトが欲しくなる

288 名前:デフォルトの名無しさん mailto:sage [2015/10/20(火) 01:58:38.69 ID:FqqyKFc+.net]
>>271
逆になんて名前をつけるの?

289 名前:デフォルトの名無しさん mailto:sage [2015/10/20(火) 02:03:28.20 ID:ihl8OErt.net]
>>271
Image側のインスタンスメソッドが存在しない点じゃなくてそっちかw
ImageはBitmapだけじゃないのは理解してるんだよね?

290 名前:デフォルトの名無しさん mailto:sage [2015/10/20(火) 03:17:45.27 ID:fy+ITDgZ.net]
TypeScript使える



291 名前:デフォルトの名無しさん mailto:sage [2015/10/20(火) 20:37:49.08 ID:+C/uSyXL.net]
TypeScriptはjavascriptの位置に入っていくもので上にあげられてるような用途には向いてない

292 名前:デフォルトの名無しさん mailto:sage [2015/10/20(火) 21:27:22.38 ID:XSRvNUEe.net]
node.jsとasp.net mvcなら

293 名前:日本ではどっちが資料豊富だろう []
[ここ壊れてます]

294 名前:デフォルトの名無しさん mailto:sage [2015/10/20(火) 21:31:07.79 ID:aserhZ1U.net]
>>284
その二つは比較されるものなんですか?
私は後者しか使った事ないんですが、前者は名前だけ知っています

295 名前:デフォルトの名無しさん mailto:sage [2015/10/20(火) 21:35:02.48 ID:VizItIQ4.net]
node.jsが選択肢に入れられる用途ならnode.jsでいいだろ
ASP.NET MVCって大規模業務アプリケーション向けだぞ?

296 名前:デフォルトの名無しさん mailto:sage [2015/10/20(火) 22:53:52.64 ID:n2Rswrrf.net]
ASP.NET MVCで大規模とか
悪夢しか想像できないな
中規模の「動けばいい」的なトコしか使い道がない
中途半端な存在

297 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 00:12:55.70 ID:1DhnI/Al.net]
C#はチューリング完全ですか?

298 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 00:17:50.65 ID:+buqe22N.net]
素のnode.jsと比べるなら
フレームワーク使わずに素のC#のHttpListenerだろ

299 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 02:50:58.77 ID:KS4N6B3g.net]
AesManagedクラスでファイルを暗号化しようとしてて、
キーはプログラム内で保持して固定にするつもりなんだけど、IVはどう扱ったら良い?
@暗号化する毎にIVを変更して、暗号化したファイルの先頭に書き出す。
AIVもプログラム内で保持して固定。ファイルには書き出さない。

300 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 08:02:33.67 ID:J5wjnr6G.net]
「レコード」クラスとそれをコレクションするクラスを作成しました
「レコード」クラスの「○○フラグ」は「キーワード」のグループ毎に1件状態にしたい

そこで考えたのが
「レコード」クラスに「○○フラグの変更時に呼ばれるアクション」を追加
「○○フラグ」プロパティのセッターで上記のアクションを呼ぶ(循環呼び出し排他制御付き)
コレクションするクラス側で「キーワード」のグループ毎に1件状態にするメソッドを実装
コレクションに追加する時に「レコード」のアクションにメソッドを呼ぶラムダ式を代入(※)

これで一応期待する動作になるのですが
「レコード」を破棄する時に(※)で代入したアクションはNULLクリアしないと
コレクションからの参照が残って不味いとかあるのでしょうか?



301 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 08:21:14.32 ID:zYXo0lV4.net]
バカはホントに珍妙なこと考えるのな

302 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 09:06:19.97 ID:7McFBYAy.net]
意識高い系の人キター

303 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 11:04:42.43 ID:ErXzvicf.net]
>>290
プログラムがキーを持ってる時点でもうどうでも良くない?

304 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 12:31:41.91 ID:IzAQ78jc.net]
>>291
難しく考えすぎ
そんなもんDictionaryにキーワードとフラグのペアを持たせといてレコードクラスのsetterで更新したらええがな
getterもそのDictionaryから値を取得して返すだけ
Dictionaryのインスタンスはデータコンテキスト的なクラスを作ってその中にラップして共有すればいい

305 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 15:30:16.81 ID:12+gm44t.net]
>>291
全体の一部であるレコードが
全体を視野に入れてユニークかどうか判別するのは
好ましいとは思わないな
その部分は分離したほうがいいよ

306 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 15:40:29.52 ID:12+gm44t.net]
>>291みたいなサンプルコードよくあるよね
UserEntityにdbを操作する静的メソッドを用意する
クラス一つだけで済むのでサンプルとしてはわかりやすいけど

307 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 16:15:53.93 ID:J5wjnr6G.net]
>>295 - 297
レス有難うございます

最初はレコードクラスに「○○フラグChanged」イベントを作り
コレクションクラスでそれを購読して対応しようかと思ったのですが
アクションで代入したらGCの回収対象になるのかな?
もしそうなら購読解除が要らないので少し楽できるかなぁ的な安易な考えでした

他の実装方法も含めて勉強してみます
重ねて

308 名前:有難うございました []
[ここ壊れてます]

309 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 16:26:42.47 ID:12+gm44t.net]
なんで初心者って見栄えや速度、GC、シンプルなコードを気にするんだろ
まず動くもの作って問題が出てから考えればいいのに
CLR使っている以上単純なコンソールアプリですら100MB以上も容量食うんだよ?
その上で数KBのメモリ増減なんて気にすることあるのかって思うわ

310 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 16:41:42.12 ID:3TuEHh7e.net]
>CLR使っている以上単純なコンソールアプリですら100MB以上も容量食う

なんだ初心者か



311 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 17:31:13.67 ID:vLvdh1RP.net]
よくわかってない状態で無理にメモリや速度、気にした結果、逆効果ってことはよくある。
例えば、クラスは、ヒープ汚すから構造体で…とかやってると、コピーコストで速度低下、結局見えないところでボクシングしまくってGCに負担掛けるとか

312 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 18:58:14.00 ID:IzAQ78jc.net]
なんでも一般化しようとするのは初心者にありがちなパターン
〜Changedみたいなのが出てきたら、本当にそこに拡張性を持たせる必要があるのかどうかよく考えたほうがいい
仕事でやってないと、クラスのインターフェイスといえば.NETのコンポーネントみたいな本当に一般的なものばかり目にするから
ああいうふうに作るものだと誤解しやすいんだろうね

313 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 19:19:34.54 ID:vLvdh1RP.net]
無理によくあるデザインパターンを取り入れようとして手段と目的が逆になるやつか。

314 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 19:34:17.96 ID:3TuEHh7e.net]
初心者としてはそのプロダクトで損をしても
教育的効果として無理からデザパタに従うということもある

どっちがいいか分からんね

315 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 19:35:01.65 ID:1DhnI/Al.net]
Observerの一つがフィールドを変更

Subjectに変更を通知

Subjectが全Subjectに通知

このObserverモデルっておかしいですか?

316 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 22:05:26.95 ID:17YEFPhW.net]
>>305
それ以前にObserverを根本的に誤解している
ObserverパターンではSubjectがイベントソースでObserverがイベントリスナだぞ


317 名前:デフォルトの名無しさん mailto:sage [2015/10/21(水) 23:04:08.68 ID:w/HuBnl5.net]
observeなんて義務教育レベルの語彙だろw

318 名前:デフォルトの名無しさん [2015/10/22(木) 17:12:48.15 ID:YiIFkN4t.net]
みなさんは
変数とかメソッドを選択したい時に
Ctrl+Shift+矢印キーで
選択してますか?
(´・ω・`)

319 名前:デフォルトの名無しさん [2015/10/22(木) 17:25:22.18 ID:YiIFkN4t.net]
例えばPointを選択してF12を押したら
Pointが使われている定義がズラ〜っと出てきますが
…public static bool operator !=(Point left, Point right) とか見て
『アンタ、何が言いたいん?』とかなりませんか?
(´・ω・`)

320 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 17:32:27.87 ID:CeSwqlxw.net]
定義に移動でソースが無いやつの話か、別にどうとも思わんけどなあ
あとCtrl+Shift+→ってなんだろ、Ctrl+Jの補完ならよく使う



321 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 17:33:20.51 ID:CeSwqlxw.net]
あーCtrl+Shift+↑↓か、使ったこと無いや

322 名前:デフォルトの名無しさん [2015/10/22(木) 17:44:46.67 ID:YiIFkN4t.net]
もしかして切り取りやコピーしたい時、
マウスで選択してるの?
(´・ω・`)

323 名前:デフォルトの名無しさん [2015/10/22(木) 17:49:06.91 ID:YiIFkN4t.net]
今まで書いたソースが突然のフリーズでムダにならないように
ひと息つくたびに無意識にCtrl+Sを押してる自分がいる
(´・ω・`)

324 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 18:04:16.53 ID:W3MdSzAO.net]
またしょうもないのが現れた

325 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 18:11:10.89 ID:CeSwqlxw.net]
Ctrl+クリックは素晴らしいよなw
どれだったかデフォルトじゃなくなってどうなることかと思ったが
復活してよかった

326 名前:デフォルトの名無しさん [2015/10/22(木) 18:12:22.29 ID:YiIFkN4t.net]
眠いから寝ます
おやすみー
(´・ω・`) /

327 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 19:56:27.34 ID:PAakFcEe.net]
ideone.com/A9peVg
これは正しく動くんですが

ideone.com/MjPf9j
これは動かない(DataContextのLevelに何を入れてもMin

328 名前:imumの16になってしまう)原因に
心当たりありませんか?
[]
[ここ壊れてます]

329 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 20:51:13.05 ID:Rb62oFdH.net]
>>316
二度と来んなよ死ね

330 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 02:59:14.71 ID:jTLyTzRn.net]
Visual C# 2010 Express使ってるんですが、

"obj\x86\Release\○○.exe" を "bin\Release\○○.exe" にコピーできませんでした。
1000 ミリ秒以内に ○ 回目の再試行を開始します。別のプロセスで使用されているため、プロセスはファイル 'bin\Release\○○.exe' にアクセスできません。

というエラーが出て10秒程度待たされた末にエラーで起動できず、ということがたまに起こります。
この再試行をさせないようにしたいんですが、探しても設定方法が分からず、そもそも設定できるのかも分かりません…。
(エラーの原因は分かっているので問題ないです)
何か知っている方いたら教えてください。



331 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 03:06:18.87 ID:ib+lLw74.net]
変な質問だな。
なぜ原因の方を潰そうと思わないんだろう。

332 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 04:14:01.91 ID:jTLyTzRn.net]
>>320
すいません。原因はソースじゃないんです…。「デバック無しで開始」→で起動したものを閉じずにまた「デバック無しで開始」するとなります。
以前は再試行せずにすぐエラーが出たのでその状態に戻したいんです。

333 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 10:18:06.90 ID:OmHxpJmN.net]
>>321
プロセスが起動してんだからコピーできるわけねえじゃん
起動したものを閉じろよ

334 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 13:03:06.16 ID:7JhC24+l.net]
>>321
別プロセスで起動するように設定したらいいよ

335 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 16:56:02.41 ID:msJBe+Ht.net]
名前付きコンストラクタとか、コンストラクタの分割(見やすくする&読み取り専用変数を使うため)とか出来たらいいのにな…

336 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 19:18:21.29 ID:wuEBiUeZ.net]
>>319
デバッグで中断した時に他のスレッドが終了していないと起こるようだ
VS再起動で何とかなる

337 名前:デフォルトの名無しさん [2015/10/23(金) 20:16:38.76 ID:IJyMkb2B.net]
PCに複数のIPアドレス(10個くらい)を持たせて、それぞれのIP宛にくるTCP通信を処理するサーバープログラム作ろうと思ってますが、
あらかじめネットワーク設定のIP設定画面からIPアドレスを追加しておくのではなく、
プログラムだけでIP追加&待ち受けするにはどうすればよいでしょうか?

338 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 20:55:00.47 ID:1FmkefyV.net]
netshで設定したら〜?
C#は全く関係ないけど

339 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 21:01:51.88 ID:8ibK1VGy.net]
>>326
LANのデバイス10個いるけどどうすんの?

340 名前:デフォルトの名無しさん mailto:sage [2015/10/23(金) 21:16:41.70 ID:1FmkefyV.net]
え、NIC一つに複数のIP設定できるでしょ
なんで10枚もいるのよ



341 名前:デフォルトの名無しさん mailto:sage [2015/10/24(土) 00:31:26.01 ID:sBU6HpCF.net]
c++dll用ラッパーを自動で作るソフトとかない?

342 名前:デフォルトの名無しさん mailto:sage [2015/10/24(土) 03:32:42.96 ID:7oDBCbbL.net]
>>326
P/InvokeでIPHLPAPI(IP Helper API)かな。

343 名前:デフォルトの名無しさん mailto:sage [2015/10/24(土) 11:48:09.25 ID:/s9N4mON.net]
>>330
常識で考えろ
そんなものは作れない

344 名前:デフォルトの名無しさん mailto:sage [2015/10/24(土) 15:35:39.62 ID:ucvxMtnw.net]
>>319なんですが、質問したかったのは「再試行」をせずにすぐエラーを出すように出来ないかってことなんです。
再試行している間はメッセージも出ず、ひたすら待たされるので、「起動に時間掛かってるのかな?」と思ったら、前のプロセスの終了し忘れだったということがあって…。
変な質問で混乱させてすいません。答えてくれてありがとうございました。

345 名前:デフォルトの名無しさん mailto:sage [2015/10/24(土) 17:13:10.08 ID:dOGyJCjw.net]
>>333
そりゃだって、前のプロセス終了待ちするんだから仕方がない。同時起動しない設定にすればいい

346 名前:デフォルトの名無しさん mailto:sage [2015/10/24(土) 19:00:51.29 ID:t+kkgTrx.net]
回答する奴がどいつもこいつも話聞かない奴で質問者が可哀想になるわw

347 名前:デフォルトの名無しさん [2015/10/24(土) 22:09:38.29 ID:oCqnp8jj.net]
数字のリスト 1,2,3,4などを
1 2 3 4のようにスペースで区切って表示したいです。

しかし、以下のようにやると語尾にごみが入ってしまいますよね?
皆さんはどうやってますか?

var s = "";
foreach(var item in list){
s += item + " ";
}

あと、このようなコードを打ったら0が得られました。

var e = list.GetEnumerator();
WriteLine(e.Current);

リストの一番目は0じゃないはずですが、どういう状態なんでしょうか?

348 名前:デフォルトの名無しさん [2015/10/24(土) 22:12:13.35 ID:oCqnp8jj.net]
MoveNextで最初のインデックスに移っていないので例外が発生すると予想していたんですが

349 名前:デフォルトの名無しさん mailto:sage [2015/10/24(土) 22:22:56.92 ID:bQKppvzE.net]
>>336
String.Join

350 名前:デフォルトの名無しさん mailto:sage [2015/10/24(土) 22:33:06.87 ID:fd/dB9hc.net]
>>337
MSDN読め
https://msdn.microsoft.com/ja-jp/library/5ztkdk88.aspx

後、ソースも
referencesource.microsoft.com/#mscorlib/system/collections/generic/list.cs,1140

Currentの初期値はdefault(T)になってる



351 名前:デフォルトの名無しさん [2015/10/24(土) 23:13:30.57 ID:oCqnp8jj.net]
>>338
ありがとうございます。.netはなんでもありますね

>>339
default(T)になっているのはなぜですか?
currentが呼び出されてそこからindexの値を取りに行くのは駄目なんでしょうか?
ソースは時間があるときに読みます。

352 名前:デフォルトの名無しさん mailto:sage [2015/10/24(土) 23:22:00.56 ID:fd/dB9hc.net]
MSDN読めって書いてるのが見えないの?

353 名前:デフォルトの名無しさん [2015/10/24(土) 23:37:22.93 ID:oCqnp8jj.net]
>>400
よくわかりません。
MoveNextをするまではプロパティは未定義ですとなっていますが、
実際に値を返していますよね。
そもそも定義・未定義という記述の意味が分かりません。

で、default(T)になっているのはパフォーマンスのためらしいですが、
今内部ソースを読む時間がないし、面倒くさいのでdefault(T)でどうパフォーマンスに影響があるのか伺っている次第です。

354 名前:デフォルトの名無しさん mailto:sage [2015/10/24(土) 23:45:14.81 ID:wB/X7nCW.net]
プログラミングもめんどくさがって死ねよチンカス

355 名前:デフォルトの名無しさん mailto:sage [2015/10/24(土) 23:48:11.15 ID:udZsPmmZ.net]
何を返すか保証しないって意味でしょ
難しく考え過ぎじゃないか?

356 名前:デフォルトの名無しさん mailto:sage [2015/10/24(土) 23:58:43.72 ID:fd/dB9hc.net]
Curretに境界値チェックして例外投げる実装入れるとパフォーマンスがわずかだけど落ちるだろ
それだけ

この実装が嫌ならオレオレEnumerator作ればいい

357 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 01:57:46.12 ID:fsyBfEYm.net]
未定義というのは将来実装が変わって返す値が変わっても文句言うなよって意味

358 名前:デフォルトの名無しさん [2015/10/25(日) 02:17:51.08 ID:KpFhvh+K.net]
ありがとうございます。
あまり気にしないことにします。

359 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 02:38:41.48 ID:c+xpZEB0.net]
ふぅ、ここの回答者頭おかしいし、あちらこちらで暴れているマイクロソフトの工作員も頭おかしいし
どこもかしこもマイクロソフト関連は気持ち悪くなった

360 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 06:55:51.12 ID:UpnA5iMK.net]
やべえぞそれ
黄色い自動車に乗ったほうがいい



361 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 13:05:53.83 ID:XGM/2Enx.net]
>>348
じゃあ見るなよ

362 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 13:35:20.53 ID:xV04ZCve.net]
飛び火させて申し訳ないけどApplepファンボーイほどではない

363 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 16:37:16.14 ID:hQyThWO7.net]
SQL Server のLocalDbを使っていたPCが壊れて
dbだけは

364 名前:バックアップしてあったので
それを新調したPCで読むことはできますか?
dbを作ったPCじゃないと読めないんでしょうか?
[]
[ここ壊れてます]

365 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 16:50:28.68 ID:Q9+fT7GM.net]
どういうバックアップ?
そもそもバックアップてtそういう時のためにあるようなもんだろ

366 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 16:55:40.90 ID:c+xpZEB0.net]
>>350
お前みたいなのが居なくなるだけですげぇスレの空気が良くなるよ

367 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 16:58:41.53 ID:PVPHq6NE.net]
Unityのコルーチン(グリーンスレッド)ってアトミックな処理によるスイッチングは発生しますか?

368 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 17:52:19.14 ID:xV04ZCve.net]
コルーチンはスレッドと何の関係もないですよ
何か変な文献でも読んだんですか?

369 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 18:02:49.45 ID:MN19GUGi.net]
>>348 みたいなレスしてる奴が何言ってるんだか w

370 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 21:16:15.50 ID:0CUh0fF8.net]
たぶん他の奴に言われてくやしかったから自分も使ってみたかった言葉なんだろ
使いどころ間違えて自爆してるけど



371 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 23:23:12.66 ID:hQyThWO7.net]
>>353
エクスプローラでコピーした場合です

372 名前:デフォルトの名無しさん mailto:sage [2015/10/25(日) 23:41:15.34 ID:RC9wdhkQ.net]
個人レベルの制作だとオブジェクト指向のメリットって
カプセル<多様性だな
カプセル化意識し過ぎると処理速度(特にゲーム)とかが酷くなる

373 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 00:36:32.71 ID:qJuY+u/q.net]
多態性?

374 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 00:42:27.84 ID:0a7DJh5E.net]
あれ、多態性だったのか
多様性と思ってた

375 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 00:47:33.11 ID:pea7EB//.net]
そんなレベルでカプセル化すると遅くなるとか言われてもな
多分まともに動くものを作り上げたことがないんだろう

376 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 01:13:26.64 ID:jSFkYHTf.net]
問題の分析もできないだろうし
ベンチすら見ないで物言ってそうな空気

377 名前:デフォルトの名無しさん [2015/10/26(月) 03:25:47.91 ID:vCh8HvqX.net]
ゲームとか複雑にオブジェクトが絡むものはオブジェクトに仕事させないで、関数ベースの方がスムーズにいくな。
エンジンにもよるが副作用がいつ起きるか把握できん。

378 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 07:47:01.63 ID:7G3hAEBt.net]
関数ベースで大量のフィールドとフラグでいつ副作用が起こるか分からないようなものを作っているわけですね

379 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 08:17:31.68 ID:C98YS4z/.net]
int x = 1;やx = a+b;みたいな普通の代入式も破壊的代入と呼びますか?

380 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 16:05:25.14 ID:ewlzRHbI.net]
非同期のタスクを途中で止めたいのですが
この場合tokenはInterruptMethod内でどのように記述すればよいですか?
〜〜〜
if(_tokenSource == null) _tokenSource = new CancellationTokenSource();
   var token = _tokenSource.Token;
   await Task.Run(()=>InterruptMethod(), token).ContinueWith(t => {
      _tokenSource.Dispose();
      _tokenSource = null;
   });
〜〜(略)〜〜
private void InterruptMethod()
{

}



381 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 16:18:23.55 ID:0a7DJh5E.net]
>>363
配列をcloneして渡したりしてたら時間かからない?メモリ的にも不利だし

382 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 16:24:50.69 ID:SRHIhdAJ.net]
>>368
Task.Run(()=>InterruptMethod(token), token).以外略;

private void InterruptMethod(CancellationToken token) {
}

やはり多態と多様を間違って覚えていた人の発言は一味違う
木を見てなんとやら

383 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 17:01:46.79 ID:pea7EB//.net]
>>369
ReadOnlyCollectionでも使え

384 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 17:08:48.73 ID:AGAQ9bh1.net]
>>359
インポートできないかな、ってC#関係ないな

385 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 17:23:46.84 ID:0a7DJh5E.net]
>>371
凄い
こんなのあったのか

386 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 19:09:46.32 ID:F0ZP2A+2.net]
2.0の時代から普通にあるよねw

387 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 19:42:21.44 ID:7G3hAEBt.net]
コレクションを外部に公開したいときによく使う

388 名前:デフォルトの名無しさん mailto:sage [2015/10/26(月) 19:42:28.57 ID:SRHIhdAJ.net]
2006年頃の世界から書き込んでるんじゃないの

389 名前:デフォルトの名無しさん mailto:sage [2015/10/27(火) 00:16:23.97 ID:8C7djFoA.net]
え?

390 名前:デフォルトの名無しさん mailto:sage [2015/10/27(火) 06:35:15.42 ID:vxRkO0y7.net]
/// <summary>
/// ビットマップ(Bitmap)を回転する
/// </summary>
/// <param name="bmp">ビットマップ</param>
/// <param name="angle">回転角度</param>
/// <param name="x">中心点X</param>
/// <param name="y">中心点Y</param>
/// <returns></returns>
public Bitmap RotateBitmap(Bitmap bmp, float angle, int x, int y)
{
Bitmap bmp2 = new Bitmap((int)bmp.Width, (int)bmp.Height);
Graphics g = Graphics.FromImage(bmp2);
g.Clear(Color.Black);

g.TranslateTransform(-x, -y);
g.RotateTransform(angle, System.Drawing.Drawing2D.MatrixOrder.Append);
g.TranslateTransform(x, y, System.Drawing.Drawing2D.MatrixOrder.Append);

g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBilinear;

g.DrawImageUnscaled(bmp, 0, 0);
g.Dispose();

return bmp2;
}

このコード少し中心がずれてさらになぜか1.2倍ぐらい拡大されてるんですが、いったいどうなってるんですか?
致命的なバグでもあるんでしょうか



391 名前:デフォルトの名無しさん mailto:sage [2015/10/27(火) 07:31:28.81 ID:AF18ul7Z.net]
DrawImageUnscaledは5cmの画像を5cmで表示するメソッドだ
おそらくお前が期待しているものとは違う
普通にDrawImage使えばいい
関係ないけどDisposeなんか書くなusing使え

392 名前:デフォルトの名無しさん mailto:sage [2015/10/27(火) 13:03:01.43 ID:nTHAaiUE.net]
また命令口調バカか

393 名前:デフォルトの名無しさん mailto:sage [2015/10/27(火) 13:29:17.45 ID:LyVSHq6d.net]
また命令口調指摘厨か

394 名前:デフォルトの名無しさん mailto:sage [2015/10/27(火) 13:43:42.84 ID:oZ3zd0d4.net]
テンプレートから外れたレスをするのをやめてください
「命令口調君って馬鹿だな」
です
正しくレスしましょうね

395 名前:デフォルトの名無しさん mailto:sage [2015/10/27(火) 14:19:38.50 ID:gDs0OAHt.net]
Windowsフォームアプリケーションを使うとき
コンストラクタとLoadイベントと
usingとDisposeって
皆さんはどちらを使っているんですか?

396 名前:デフォルトの名無しさん mailto:sage [2015/10/27(火) 14:24:46.83 ID:g1+/LNmd.net]
unity使ってたらバカにされるらしいけど
ここの人たちは自分でunityから作るような人たちなの?

397 名前:デフォルトの名無しさん mailto:sage [2015/10/27(火) 15:10:56.72 ID:oZ3zd0d4.net]
はぁ?なに?被害妄想?
質問する前に病院行って問診してもらえよ

398 名前:デフォルトの名無しさん mailto:sage [2015/10/27(火) 15:16:17.66 ID:LyVSHq6d.net]
>>383
コンストラクタとLoad/OnLoadは用途が別でしょ

>>382
命令口調君って馬鹿だな、まで読んだ
じゃなかったっけか

399 名前:デフォルトの名無しさん mailto:sage [2015/10/27(火) 15:42:59.19 ID:sDzKh5al.net]
ウィンドウが生成される前にやれることならコンストラクタ。
ウィンドウが生成された後じゃないとやれないならLoadイベントなりOnLoadをオーバーライドしたりで。
usingが使える場面は、原則using。

適材適所で使えばいい。

400 名前:デフォルトの名無しさん mailto:sage [2015/10/27(火) 16:09:37.28 ID:scBMsQMX.net]
なるほど分かりました



401 名前:デフォルトの名無しさん mailto:sage [2015/10/27(火) 16:11:53.68 ID:scBMsQMX.net]
あれ?ID変わった
>>388>>383です

402 名前:デフォルトの名無しさん mailto:sage [2015/10/27(火) 17:27:59.94 ID:vxRkO0y7.net]
>>379
thx

403 名前:デフォルトの名無しさん [2015/10/28(水) 04:40:41.67 ID:wj9WG103.net]
地震警報アプリを作りたいんですが
どうやって作ったらいいの?
(´・ω・`)

404 名前:デフォルトの名無しさん mailto:sage [2015/10/28(水) 06:39:54.32 ID:1FF+1WKV.net]
Managerって名称をクラスに付けるな死ねって言われたんですが
やっぱり付けるとマズいですか?(WindowManagerとかViewManagerとか)
Manage(管理)って言われても具体的に何を、ど

405 名前:フような機能を管理してるのか分からないって言われました []
[ここ壊れてます]

406 名前:デフォルトの名無しさん mailto:sage [2015/10/28(水) 07:21:56.07 ID:8s7NCB3J.net]
>>391
緊急地震速報は気象庁に問い合わせないとダメ
予報だからいい加減なソース使うと捕まるよ

>>392
その通り

407 名前:デフォルトの名無しさん [2015/10/28(水) 08:37:02.75 ID:UYNcQBr4.net]
うん、プロジェクトマネージャーとか意味が分からんよな。
もっと具体的な名称にしてもらいたい

408 名前:デフォルトの名無しさん mailto:sage [2015/10/28(水) 09:12:53.06 ID:JFpDXlQ+.net]
>>392
どのような機能を管理してるのかは知らんが
何とかManagerってクラス名なら、「何を」はわかるだろう
その命名がまずいかどうかはお前のとこの命名規則次第

409 名前:デフォルトの名無しさん mailto:sage [2015/10/28(水) 09:22:50.56 ID:Djn1jnu+.net]
クラスの機能が名前を見ただけでわかるのは理想だけど、
思いつかなければ適当でも構わんと思うがな

設計書さえちゃんとしていればいい

410 名前:デフォルトの名無しさん mailto:sage [2015/10/28(水) 18:54:27.94 ID:8zJiOHJK.net]
>>392
> Manage(管理)って言われても具体的に何を、どのような機能を管理してるのか分からないって言われました

で、それに対してちゃんと説明できるの?
説明できないなら、クラスの作り方がまずいか君がきちんと理解できてないってこと
説明できるならそれを端的に示す名前をつければいい
ただ、所詮数単語分しか使えないから >>396 の言う様にあまり凝ってもしょうがないので、コメントなり設計書を充実させた方がいい



411 名前:デフォルトの名無しさん [2015/10/28(水) 19:04:19.10 ID:UYNcQBr4.net]
マネージャーが具体的になにやるかなんて説明する必要あるか?

タスク管理や、営業や、自ら作業を行うし、色々やる。
いわば、コンポーネント群にアクセスするためのAliasのようなもんで、自身はそれを受け持つ器にすぎないのだから、なんのインスタンスを持つかだけ書けばいいと思うが。

逆に言えば、マネージャー自身になるべくメソッドを持たせてはいけない。

412 名前:デフォルトの名無しさん mailto:sage [2015/10/28(水) 19:22:16.11 ID:se9H+oL4.net]
マネージャー自身になるべくメソッドを持たせてはいけない。
マネージャー自身になるべくメソッドを持たせてはいけない。
マネージャー自身になるべくメソッドを持たせてはいけない。

初心者でよくわからんがなんか感動した。タイミングだろうが 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)


413 名前:デフォルトの名無しさん mailto:sage [2015/10/28(水) 20:32:14.12 ID:3O8Xwln/.net]
>>399
マジで若年性アルツハイマーの疑いがあるから病院で診てもらえ。

普通の人間はお前さんがやってるような繰り言を好まない(むしろ嫌悪感を感じる)が、脳にダメージがあると
お前さんのように繰り言や同じことの繰り返しに快感を感じるようになる。

414 名前:デフォルトの名無しさん mailto:sage [2015/10/28(水) 21:17:58.21 ID:se9H+oL4.net]
>>400
そうなのか
最近おかしいので脳梗塞かと思ってたけど・・・その考えはなかった
しかし精神病だと言われて言ってみら正常だからもうくんなとか言われて恥をかいたので鵜呑みにできない

415 名前:デフォルトの名無しさん mailto:sage [2015/10/28(水) 21:36:02.28 ID:3nTbM/Mv.net]
他人のアルツハイマーの疑いを指摘するより先に
自分の人格障害を疑えよ

416 名前:デフォルトの名無しさん mailto:sage [2015/10/28(水) 21:40:04.01 ID:N4hu8nHh.net]
│↑
└┘

417 名前:デフォルトの名無しさん mailto:sage [2015/10/28(水) 23:07:28.64 ID:3O8Xwln/.net]
>>401
真面目にそうだよ。
反復行動や繰り言はボケの初期症状。
2chでも実況とかで毎日同じレスを繰り返してる奴がいるけど、ああいう奴の何割かは確実にヤバい。

418 名前:デフォルトの名無しさん mailto:sage [2015/10/28(水) 23:20:01.88 ID:zTRdryA5.net]
上のケツ穴からなにを偉そうなこと抜かしてんだ
糞して寝ろゴミ

419 名前:デフォルトの名無しさん mailto:sage [2015/10/29(木) 00:05:27.68 ID:y57Q0DlA.net]
俺も毎日会社行く反復行動してるわ
ボケないように無職にならないと

420 名前:デフォルトの名無しさん mailto:sage [2015/10/29(木) 19:46:57.90 ID:3XC8GuXY.net]
10万件程度のレコードをQueueで流しながら中身を色々処理したいのですが、多次元配列で格納してLinqToSqlで処理するか、DB連携してテーブル作成してSQLで処理するのと、どちらが良いでしょうか?メンテナンス性よりもどちらかというと処理スピードを重視しています。



421 名前:デフォルトの名無しさん mailto:sage [2015/10/29(木) 20:34:52.83 ID:QT8b22UI.net]
Sparkでも使えば

422 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 01:22:44.08 ID:wTNAYNO/.net]
両方やってみて速い方にすれば?

423 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 04:36:04.75 ID:9YpT7G8L.net]
実行中にコードを書き換えたいんだが、変更しようとすると
アセンブリが読み込まれていない場合変更が許可されていないと出るんだがどうすればいい?
同一ソリューション内にクラスライブラリプロジェクトを作ってメインプロジェクトに参照設定したのでクラスライブラリーのコードを書き換てビルドするだけで
呼び出し先コードを動的に変化させられると思ったんだが甘かった

424 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 04:42:47.45 ID:opwym8fe.net]
動的コード生成はいくつか方法はあるけど
今ならLINQの式ツリーを使うのがベストかと思う

425 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 05:22:30.47 ID:9YpT7G8L.net]
式ツリーとか意味わからなすぎる
もっと簡単でいいんだけど
VS二つ立ち上げてdllの中実行するたびにdll自体を再読み込みする設定とかないの?
HDDぶっ壊れるから無理なのかな

426 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 05:47:54.39 ID:opwym8fe.net]
ライブラリは読み込んだら最後、アプリケーションドメイン単位でしかアンロードできないのでちょっとメンドクサイ事になるかもね
どういう事をしたいのか分かれば、どの方向性がいいか答えられるかもしれないけど、掲示板越しではちょっと難しいかもしれない

427 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 06:28:44.46 ID:9YpT7G8L.net]
アプリの起動と終了の時間が長すぎるのでゲームスクリプトとかいうのにたどり着いたんだが
簡単な式の変更だけでいいんだけど

HP -= attackポイント-defenseポイント



HP -= attackポイント-defenseポイント*スキル1

とかに細かく変更してバランスを取りたい

とりあえずCSharpCodeProviderとかいうのは全く意味がわからなかった
Assembly.LoadFrom(DLLのフルパス);をボタンに設定したが、DLL側のVSでアクセス拒否でコンパイルできない。
動的式変更ってみんなどうやってんだよ

428 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 06:32:27.31 ID:opwym8fe.net]
粒度が細かい変更なのでアプリケーションドメイン越しだと、問題が起こりそうですね
難解かもしれませんが、無理してでも式ツリーがベストだと思います

429 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 06:35:41.31 ID:opwym8fe.net]
ところで、ゲームという事は調整をする段階だけ使用して、製品版では固定となるという事はありますか?
それで良いなら、やり方はあるかもしれない

430 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 06:36:30.12 ID:9YpT7G8L.net]
>>415
了解
LINQの勉強から始めますw
ありがとね



431 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 06:48:24.54 ID:9YpT7G8L.net]
そこまで考えてなかった
速度が遅くなるならスクリプトってのは本体に戻すものなのかな
わからん

432 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 06:57:18.47 ID:opwym8fe.net]
遅くていいならdllなど使わず、いっそアプリケーション間通信とか使ってみれば良いのでは?
WFCとか

433 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 07:26:27.95 ID:mUvrP2A4.net]
そんなもん適当に沢山の式のパターン用意してからswitch(ファイルの値)で分岐したらいいだろ
もしくは 結果 = 係数1 * ポイント * ポイント + 係数2 * ポイント
みたいな行列の計算式として一般化して係数行列だけファイルから読むとかな (スキルの値もポイント行列に含める)
沢山変える場所があるから自由にソース弄りたいというなら小細工するよりいっそLuaでも組み込んだほうがいい

434 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 07:44:32.17 ID:opwym8fe.net]
>そんなもん適当に沢山の式のパターン用意してからswitch(ファイルの値)で分岐したらいいだろ
二度と見たくないコードになりそうw

435 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 08:10:06.51 ID:mUvrP2A4.net]
決まったら消すんだからどうでもいいでしょ
式ツリーって自分で言ってること分かってるんだろうか
自分でDSL作ってパースしてそれに従って式組み立てるんだぞ?
んなクソ面倒な再発明するくらいならスクリプト組み込むわ

436 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 08:16:59.27 ID:opwym8fe.net]
>>422
XMLで式書いて、式ツリーに変換してしまえば、数行の再帰ルーチン一個でできますが?

437 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 08:23:13.87 ID:opwym8fe.net]
式ツリーを提案したのは、dllでリンクの必要がある→かなりパフォーマンスにシビアな要求があると理解したからですので
速度いらないなら、式ツリーは無視でいいですよ

438 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 08:32:26.67 ID:mUvrP2A4.net]
>>423
それをDSLという
パラメータの値はどこから取ってくるの?それもXMLにいちいち書くの?
現実的にはいろいろ柔軟性を捨てて決め打ちすることになるだろうから、非常に限定的なDSLになると思うよ
どうせ限定的な使い捨てコードなんだったらそんな大袈裟なことはしたくないね俺なら

439 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 08:35:17.46 ID:opwym8fe.net]
>>425
何が言いたいのかよくわからんけど、知識なさすぎじゃねぇのw
お前、ずっとここに居座っているキティ回答者なんだろうけど、死ねばいいと思います

440 名前:デフォルトの名無しさん [2015/10/30(金) 10:35:59.08 ID:v/tjtbaN.net]
いまどきXMLはねーよ



441 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 11:08:18.70 ID:opwym8fe.net]
XML嫌なら正規表現あるし式程度なら完全パースしても2000行には収まるだろうし
まぁ、知識なければ無理でしょうけどね、バカはバカなりにして回答者にならずに引っ込んで下さいって感じです
ゴミ回答でレスどんどん流れていくのは迷惑です

スラドで暴れるMS工作員といい、昨今MS周辺にキチガイ多すぎだよ

442 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 11:28:28.02 ID:5k9fNgvi.net]
正規表現なんか使ってパースするぐらいならXMLで良いわw

443 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 11:34:54.86 ID:opwym8fe.net]
やたら式ツリーに拘ってる流れですが、パフォーマンスはいならいみたいだから
アプリケーション間通信お勧めです
とだけ最後に

これなら独立してコンパイルもできるし、部分再起動もデバッグも容易
式ツリーは、パフォーマンスはでるがデバッグがファッキンな事になるので

444 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 11:38:18.84 ID:opwym8fe.net]
通信というと大げさに思えるかもしれないけど、結構ライブラリはそろっているし
なにより、WEBに情報量が多いので
キーワードはWFC

445 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 11:40:32.84 ID:opwym8fe.net]
×WFC
○WCFでした

446 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 11:41:56.65 ID:mUvrP2A4.net]
パフォーマンスいらないんならそれこそスクリプト組み込めばいいだろ
.NETアプリに簡単に組み込めるのはいくらでもあるし、COMでJScript呼んでもいい
WFC()なんかより遥かに簡単だよ

447 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 11:44:51.01 ID:opwym8fe.net]
>>433
まぁ、式の話だけならそれでもいいとは思うけど、dllでかつパフォーマンス要らないというのだから
言語を共通化しておきたい理由があるのかなと思っただけです

448 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 11:47:11.41 ID:opwym8fe.net]
話を意図を全く考えないで、次々と回答する人の話聞かない回答者は迷惑
と、ずっと流れを見ていて思う所

449 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 13:00:36.70 ID:GDTU3KP4.net]
言ってることはまともだけど
平日の午前中だけで15回もレスしてる奴がまともとはとうてい思えない現実

450 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 14:05:02.67 ID:PGAJ1OT+.net]
>>348と同一人物だろ



451 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 14:20:18.47 ID:zaAGkshB.net]
msdnにいる変人だろ

452 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 15:58:51.03 ID:5vqzX8bU.net]
コード中にリテラルべた書きするのって辞めた方がいいですか?

453 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 16:00:13.93 ID:opwym8fe.net]
そう思うのなら止めとけ、そんなの人に聞くような話ではないでw

454 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 16:13:31.41 ID:5vqzX8bU.net]
素人だし現場経験ゼロで友人もいないので
ネット掲示板以外で聞ける場所がないんです

455 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 17:05:36.71 ID:GDTU3KP4.net]
図書館でプログラミング作法でも借りて来て読めよ

456 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 17:45:05.20 ID:5vqzX8bU.net]
すみません、分かりました。
最後に、作法の本でお勧めのタイトル教えて下さい

457 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 17:58:32.30 ID:PGAJ1OT+.net]
同じ文字列とか定数値を複数の箇所で使うのならconstやそれ相当にしたほうがいいのは分かるでしょ?
定数としてまとまってると変更するとき楽だし

書捨てコードならそんなことはしないけど

458 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 18:09:03.11 ID:5vqzX8bU.net]
それは分かります
ただ、一度しか使わない判定文とかはローカル変数切るの面倒くさいなと思って
適当なリテラル書いちゃう事もあるんですが、どうなのかなと思って

459 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 18:18:01.14 ID:TILHDHb5.net]
>>445
リテラルを避ける動機として変更の容易さはよく挙げられるけど実際はむしろ多いケースじゃない。

リテラルを避ける動機は、プロパティやメソッドにちゃんとした名前を付けるのと同じ。
それが何を意味しているのかのメタ情報を付け加えるため。

だからたとえ一回しか出てこない定数でも、それが何を意味しているのかをコード上で明示する必要が
あると思えば、それがちゃんとした名前を与える動機になる。

460 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 18:36:25.26 ID:5vqzX8bU.net]
>>446
なるほど、よく分かりました
ありがとうございました。



461 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 19:51:46.37 ID:MYsCE15E.net]
#define ZERO (0)

462 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 20:12:53.58 ID:qxv1tbgN.net]
その場限りでしか使わないような定数で、なおかつ変更する必要もないようなものは、直接指定する。

463 名前:デフォルトの名無しさん mailto:sage [2015/10/30(金) 20:13:36.95 ID:FKezdCzi.net]
>>443
ソフトウェア作法
ついでにプログラム書法も読め

464 名前:デフォルトの名無しさん mailto:sage [2015/10/31(土) 01:16:24.67 ID:rX+RYEJQ.net]
読みやすいコードを書く努力は、他人のみならず「未来の自分」という別人に向けた優しさだ

465 名前:デフォルトの名無しさん mailto:sage [2015/10/31(土) 10:34:56.02 ID:bc83RtfA.net]
3日後の自分は他人

466 名前:デフォルトの名無しさん [2015/10/31(土) 13:16:21.42 ID:Yq2ZBfqO.net]
リファクタリングって部屋掃除する程度の当然のことなのに、優しさどうとかレベル低すぎだろ。

467 名前:デフォルトの名無しさん mailto:sage [2015/10/31(土) 13:46:46.22 ID:CR8bSv/n.net]
高レベラーはこんなところにいなくていいんですよ

468 名前:デフォルトの名無しさん [2015/10/31(土) 19:22:29.59 ID:qtS/NLO9.net]
VS2010で.net4.0ClientProfileをターゲットプラットフォームとして作成したアプリケーションを、
VS2015で同様に開発を継続しても不具合とかないですよね?

469 名前:デフォルトの名無しさん mailto:sage [2015/10/31(土) 21:27:12.40 ID:aiNNK1Xk.net]
>>455
C#のバージョンが違うから出ないとも限らない

470 名前:デフォルトの名無しさん mailto:sage [2015/10/31(土) 22:30:49.30 ID:nJia6E4E.net]
VS2015はなんかIDE不安定なんで用心しといた方が良いかもしれない



471 名前:デフォルトの名無しさん mailto:sage [2015/10/31(土) 23:44:21.04 ID:XeEgNn+4.net]
結構落ちるよな2015のIDE
Roslynのお陰か起動やたら遅いし

472 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 00:43:39.73 ID:ak4S1goK.net]
Windows8が出て、合わせて登場した2013あたりから
マイクロソフト製品はどれも品質がひどく悪くなっている
今は、学生はともかく業務の人は別途マシンを用意して試験期間を経てからにしたほうが無難

473 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 00:46:56.25 ID:ak4S1goK.net]
it.srad.jp/story/15/10/30/2016254/
こういうのマジで勘弁してほしいんだけどな

474 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 03:12:33.04 ID:dH8H+Y8O.net]
多次元配列にテーブルみたく、フィールド毎、違う型とか格納できますか?

475 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 03:21:18.28 ID:ak4S1goK.net]
何をしたいのかよくわかりませんが、フィールドにobject型かdynamic型を使えば目的は達成できるでしょう

476 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 08:56:11.81 ID:xZAu8pjv.net]
ツールストリップ内のコンボボックスのサイズをフォームのサイズ変更時に自動調節しようとしているのですが
サイズを拡大する時は正常ですが、縮小時に変化幅が小さいと正常に表示されるのですが
変化幅が大きいと表示されませんが何故でしょうか?

private void Form1_SizeChanged(object sender, EventArgs e)
{
  toolStripComboBox1.Width = (toolStrip1.Width - 300);
}

以下も同じ
private void toolStrip1_SizeChanged(object sender, EventArgs e)

private void toolStrip1_Resize(object sender, EventArgs e)

private void Form1_SizeChanged(object sender, EventArgs e)

private void Form1_ResizeEnd(object sender, EventArgs e)

private void Form1_Resize(object sender, EventArgs e)

477 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 11:39:20.34 ID:I6OT07I5.net]
アプリケーションの実行フォルダをApplication.StartupPath プロパティで取得する事は判ったのですが
dobonに載っていた下記のコードの何処に追加したらよいのか判りません
よろしくお願いします

//ファイルを上書きし、Shift JISで書き込む
System.IO.StreamWriter sw = new System.IO.StreamWriter(
@"C:\test\1.txt",
false,
System.Text.Encoding.GetEncoding("shift_jis"));
//TextBox1.Textの内容を1行ずつ書き込む
foreach (string line in TextBox1.Lines)
{
sw.Write(line + sw.NewLine);
}
//閉じる
sw.Close();

478 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 12:06:14.89 ID:VEmEMCzM.net]
>>464
1.txtを"C:\test\"じゃなくてアプリケーションの実行フォルダに出力したいってことなら
「@"C:\test\1.txt"」を「Path.Combine(Application.StartupPath,"1.txt")」に置き換えればいいんじゃね

479 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 12:06:43.65 ID:iCjS0aFW.net]
メソッド内。

480 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 14:05:43.27 ID:EzyPWtsW.net]
C#はクラス数約3000
付随のプロパティーやメソッドが
どのような便利機能があるのかを知るだけでも大変

更に
詳細を調べ
実装するに至るまでがまた大変

Microsoft 地獄



481 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 14:11:08.59 ID:8yFkftFr.net]
へー、すごいね
帰っていいよ

482 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 16:19:50.04 ID:aracFvq3.net]
非同期に来るネットワークストリーミングデータを
ファイル出力(またはDBに出力)したいんだけど
一番良い実装方法ってないでしょうか

自分の頭だと
1.ストリームデータが到来するたびにFile.Open(Mode.Append)で書き込んでFileCloseする
ぐらいしか思いつかないんです

483 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 16:46:54.21 ID:8wBAqxRo.net]
>>469
> 一番良い実装方法ってないでしょうか

お前の「一番良い」の定義によるわな

484 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 17:19:43.69 ID:gG04aPZk.net]
出力する関数だけ作っておいて、その先は差し替えられるようにしとけばいいんじゃないかな

485 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 17:25:41.75 ID:qxPDGDEe.net]
unityC#の話なんですが

・Aをした後Bをして、Bの後にCをしてCの後にDをする
・A〜Dまではメソッド化してMethA〜MethDがある

これを
void Main()
{
 MethA();
 MethB();
 MethC();
 MethD();
}
ではなく
MethA(){ (の終端で)MethB();}
MethB(){ (の終端で)MethC();}
MethC(){ (の終端で)MethD();}

とメソッド内で次々メソッドをコールしていくのってアンチパターンですか?

486 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 17:34:19.28 ID:OsaYEXf6.net]
メソッドの使い方として…

void Main()
{
ご飯を食べる();
歯を磨く();
着替える();
家をでる();
}
ではなく
ご飯を食べる(){ (の終端で)歯を磨く();}
歯を磨く(){ (の終端で)着替える();}
着替える(){ (の終端で)家をでる();}
}

とメソッド内で次々メソッドをコールしていくのってアンチパターンですか?

487 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 17:34:31.06 ID:fyC3CDzJ.net]
>>472
やめなさい。メソッドはgotoではない。
中で呼んでるメソッドの処理も含めてそのメソッドの処理だ。
コボラーはよくそういうコード書くよ。
PERFORM INPUT_CHECK.で全ての処理が終わるの。

488 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 17:35:49.13 ID:OsaYEXf6.net]
中級以上の人でもメソッドが何かわかってない人がけっこいる

489 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 17:36:57.57 ID:qxPDGDEe.net]
>>474
ありがとうございます。
それってメソッド内で別メソッドをコールする事自体ダメって事ですか?
それとも基本ダメだけどケースバイケースという意味ですか?

490 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 17:38:25.26 ID:OsaYEXf6.net]
歯を磨くがご飯を食べるというメソッドの中の行為だと思うか?


さらに言うとご飯を食べたら必ず家を出ることになるけどそれでいいのか?



491 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 17:38:34.51 ID:qxPDGDEe.net]
>>473
すみません・・・よく分かりません・・・

492 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 17:40:21.93 ID:OsaYEXf6.net]
ゆ、ゆとってるな…

493 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 17:42:33.30 ID:VEmEMCzM.net]
なんでコールしたいのかを説明した方がいいんじゃないの

494 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 17:42:55.19 ID:OsaYEXf6.net]
メソッドは単に手順の塊だけにするべきじゃない
意味的にまとまった単位にすべき

495 名前:デフォルトの名無しさん [2015/11/01(日) 18:28:41.58 ID:tijcq3hU.net]
納期があるから無理。

496 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 18:43:27.56 ID:NUcI8Hig.net]
>それってメソッド内で別メソッドをコールする事自体ダメって事ですか?
NO
メソッド内で別メソッドをコールしても良い

>それとも基本ダメだけどケースバイケースという意味ですか?
NO
基本的にOKだがケースバイケースでだめな場合がある
>>472などはだめな場合の典型だ
このようなコードを書くと、テスト担当者や将来これをリファクタリングする者が、
ぶち切れて君を殴りに来るだろう

497 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 19:07:02.64 ID:qxPDGDEe.net]
理由とかそれ以外の事は分かりませんが、とにかくダメだという事だけは分かりました
ありがとうございます

498 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 19:16:41.45 ID:SU1ih8K9.net]
>>484
>>473とかの説明は分かりやすいと思うけどね。
茶化すだけではなくて、本当に学びたいのなら、
>>480の指摘通り、君のコードを晒してみるべきだよ。それは473のように日本語でもいい。

俺は多分 MethA,B,C,D の切り方に間違いがあるのだと思うが。

499 名前:デフォルトの名無しさん [2015/11/01(日) 19:28:16.61 ID:ps5s1FTp.net]
別にそうスケジュール決まってて、必ずそのフローになるならいいじゃん。
仕様変更がないならね

500 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 22:15:26.87 ID:nfigy2gy.net]
すみません。質問なのですが、Visual StudioでWindowsフォームを作成したとき、
○○.vb
○○.Designer.vb
○○.resx
の3つが作成されますが、○○.resxはどういったときに使うのでしょうか?



501 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 22:29:30.44 ID:yv99Jyne.net]
>>484
ひとつのメソッドで完結してなきゃダメだよ。
その後の動作に一貫性があるなら内包すべき

502 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 22:36:12.65 ID:qJZnh0GV.net]
>>487
vbスレで聞けと言いたい所だが、テキストエディタで中身開いてみれば大体分かるよ

503 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 22:55:30.95 ID:nfigy2gy.net]
ごめんなさい。resxファイルの中身を見てもよくわかりません。
○resheaderってなに?
○xsdってなに?
○xsd要素内に長々と設定が書かれているけどこれはなに?
疑問が増えてしまったのですが…。

504 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 23:01:09.49 ID:nfigy2gy.net]
ごめんなさい。疑問が湯水のように湧き上がるので、続いて質問いたします。
C#では大文字で始まるStringと小文字で始まるstringがありますが、
この2つに何か違いなどはあるのでしょうか?

505 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 23:01:58.94 ID:83j3eZbo.net]
無い

506 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 23:02:53.98 ID:nfigy2gy.net]
>>492
ありがとうございます

507 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 23:07:00.98 ID:nfigy2gy.net]
まだ疑問があります。すみません…。
object型に存在しないメソッドを記述してもIDEがエラーを検出してくれないのですが、
これは正しい挙動なのでしょうか?
他の型ではIDEがきちんとエラーを検出してくれます。

508 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 23:11:08.80 ID:83j3eZbo.net]
拡張メソッドがある時はエラーにならない
それ以外はエラーになるはず

509 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 23:14:10.19 ID:nfigy2gy.net]
今Visual Studio Communityをダウンロード中なので、
拡張メソッドがない時にきちんとエラーが出るかどうかを試してみます。
回答ありがとうございます。

510 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 23:19:27.21 ID:qJZnh0GV.net]
>>490
タグは別に理解しなくていい、した方がいいかもだけど
ファームにコントロール追加してプロパティを設定してからresxの中身見てみろ

>>494
vbの話じゃないだろうな…



511 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 23:19:40.79 ID:nfigy2gy.net]
今僕は、exeファイルやdllファイルがILで記述されているという認識を持っているのですが、
これであっているでしょうか?
できればexeやdllのILを読んでみたいのですが、おすすめのツールなどはありますでしょうか?

もう本当に、何度も質問してすみません…現実に質問できる人がいなくて…

512 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 23:21:32.65 ID:qJZnh0GV.net]
まずgoogleで検索しような

513 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 23:24:36.60 ID:MnKC4BnX.net]
>>498
.NET Frameworkに同梱のildasm.exeで読める
本格的に解析するならオープンソースのILSpyが便利

514 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 23:24:42.06 ID:nfigy2gy.net]
Googleで検索して答えを得ても、あまり楽しくないんですよね。
できれば同じプログラマの方から直接答えをいただきたいというか…
この気持ちわかりませんか?

515 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 23:28:37.70 ID:ak4S1goK.net]
分からないし、そういう質問はハタ迷惑だね

516 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 23:42:15.83 ID:2F0TVXaS.net]
調べるのが楽しくないようなら、プログラマは向いてないかも

517 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 23:46:40.91 ID:SU1ih8K9.net]
>>501
お前、向いてないと思うぞ。

プログラミングは探求心と好奇心があって自己完結できる奴じゃないと上達しにくい。
ググレばすぐに出てくることを質問されても、迷惑でしかない。
構ってちゃんは死ねの世界だよ。

518 名前:デフォルトの名無しさん mailto:sage [2015/11/01(日) 23:49:41.32 ID:OsaYEXf6.net]
>同じプログラマの方

なにか君は違う分野の人だと思うよ

519 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 00:10:01.74 ID:lz5NDAKO.net]
自分で調べて、とりあえず試す、そして理解することができないやつにプログラミングは無理。

520 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 00:52:00.08 ID:LDPQCdy0.net]
全否定にワロタ



521 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 01:41:06.91 ID:w3sTMEno.net]
ここじゃなくてteratailとかで聞けよ
プログラマーの皆さん助けて…とか広告出してるから
如何にクソな質問でも答えるんだろ?たぶん

stackoverflowは止めとけ
お前なんか顔面にグーパンぶち込まれて終わりだから
人間的なリアクションすら期待できないぞ

522 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 01:55:56.07 ID:ZkM1wHMy.net]
自分で調べて解決できないことだけを質問して。

そういう質問には答えが返ってこないことが多いけどな。

523 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 02:06:35.75 ID:lz5NDAKO.net]
良い方法があるぞ。
ニコ生でプログラミング放送すればいい。
「初心者です。C#勉強してます。アドバイスください」みたいにしてさ

暇な教えたがりが丁寧に教えてくれるよww

524 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 02:27:46.08 ID:2uUBRP/w.net]
良い方法があるぞ、だとさ。
誰に威張ってるつもりなのかね。馬鹿じゃなかろうか。

525 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 02:33:52.94 ID:mV+KRjUE.net]
フォームにGDIで描画したあとなにに、その上に貼ってあるコントロールinvarid()とtranslateで透過しない仕組みを俺に教えてみろ

526 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 02:47:30.12 ID:mV+KRjUE.net]
>>509
なるほど

527 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 03:21:28.27 ID:8j1BqD6a.net]
>>512
国語の勉強から始めようか

528 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 06:18:48.27 ID:K38GcwBv.net]
>>463
自己解決しました
if (toolStrip1.OverflowButton.Visible)
{
toolStrip1.Width = toolStrip1.Width - toolStrip1.OverflowButton.Width - toolStrip1.OverflowButton.Margin.Horizontal;
}
でうまく行きました。

529 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 07:45:31.68 ID:jIDLqNeP.net]
googleで調べないからウゼーじゃなくて
かまってちゃんウゼェーなんだけどな
キチガイ回答者死ねと同じ理由で、どっか行きやがれって事だ
同一人物の自演くせぇけどw

530 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 11:09:13.20 ID:/Om+5HJh.net]
>>516
なんか、精神レベル14歳だな。
別にそれでも知ったことじゃないけど、わざわざこんなところで開陳して嬉しいのか?



531 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 11:58:16.38 ID:jIDLqNeP.net]
話の流れ無視して自分のしゃべりたい事ばかり回答する
強引に話題を正しい方向にもっていったら、頭おかしい初心者が現れる
この掲示板は以下それがずっとループしている、同一人物以外には見えない
本物の初心者が来たとき間違って叩いて掲示板が荒れると具合が悪いからとっとと死んでくださいって感じだね

532 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 14:57:34.97 ID:lyk3EOWa.net]
久しぶりにmsdnでクラスのドキュメント見てると
えらい見づらくなってる ていうか、バグってる

なんで、IEで表示して、重なって表示してまともに操作できないのか理解できない

一番 右に表示されるべき 「解決策はありますか」等が左に重なって表示されてて
まともに、クリックにも反応しないし
 

533 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 15:00:31.80 ID:9+4jFg/5.net]
プログラマがIEなんか使うな
IEはテストのときだけ使うもんだ

534 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 15:15:44.14 ID:lyk3EOWa.net]
いや、余計なソフトインストールしたくないし

しかし、最近IE使って、スクリプトエラーでHP見れなかったりいいことないわ
(Webサイトのせいにしてるけど、他のブラウザなら見れるだろうしw)

MSの本気が見たい

535 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 16:23:32.54 ID:ysex+PeP.net]
IE11で普通に見れるが

IE8使ってるならご愁傷様

536 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 17:05:07.62 ID:lyk3EOWa.net]
IE11なんだけど
互換性表示にしてみたけど、変わらず

なんかの設定があるのかな?
ともあれいろいろ試してみます

537 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 17:40:45.22 ID:lyk3EOWa.net]
原因判明
拡張保護モードに

538 名前:よるものだった

msdnの表示も、HPが見れない件も(Web サイトに問題が発生したため…)
拡張保護モードはそのままで、信頼済みサイトの登録したら両方とも治った

>>522さんのおかげだね あと、スレチ悪かった
[]
[ここ壊れてます]

539 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 20:30:30.83 ID:6BSNMQg5.net]
昔のHelpViewerみたいなのはもうないのかね
ローカルにヘルプインストールするやつさ

540 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 21:09:41.05 ID:lyk3EOWa.net]
ホントそう 10Gぐらいあったけど
今のmsdnに比べれば天国



541 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 21:20:07.89 ID:KsZtwWae.net]
>>525
ヘルプ→ヘルプ設定の変更→ヘルプビューアーで起動
メニューぐらいしっかり見よう

542 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 21:20:21.31 ID:i/oY4D53.net]
https://msdn.microsoft.com/ja-jp/library/e2h7fzkw.aspx
オフラインのヘルプ コンテンツをインストールする
Visual Studio をインストールした後、オフラインで使用できるように、
追加のヘルプ コンテンツをダウンロードすることができます。

目が節穴なのか、
目のドライバをインストールするのを忘れているのか、
頭のサポートが切れているのか

543 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 21:23:00.50 ID:6BSNMQg5.net]
>>527
>>528

おー
機能2015インスコしたばっかだったので


544 名前:助かりましたわー []
[ここ壊れてます]

545 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 21:23:06.26 ID:5XQF34dG.net]
「インターネットで正しい答えを得る最良の方法」を実行したにすぎない。
現に成功している。

546 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 21:33:44.76 ID:6BSNMQg5.net]
いけずおっしゃらんと。
だけどダウンロード速度おっそ! 

547 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 22:42:45.43 ID:oXEakMpl.net]
>>497
おっしゃるように、C#ではなくVBでした。勘違いしてしまって誠に申し訳ありません。

.resxのほうは、「リソースの追加」をすることで.resxファイルが書き換えられることはわかりました。
でもいくらフォームにコントロールに追加してそのプロパティを変えても、
.resxの内容は書き換わりません…。どういうことなのでしょうか?

548 名前:デフォルトの名無しさん mailto:sage [2015/11/02(月) 22:47:53.10 ID:oXEakMpl.net]
>>500
丁寧に教えていただきありがとうございます。
まさか既にデコンパイラプログラムがパソコン内に入っているとは思いませんでした。
これからはildasm.exeでILを読むことにします。

549 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 09:42:13.71 ID:Lrk43gML.net]
>>532
そういうのは*.designer.csのInitializeComponentの中に書かれる

550 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 11:55:19.90 ID:zP0KaUIs.net]
IL読んでも全く理解できなそう



551 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 12:03:03.87 ID:VtUJC+iX.net]
初心者って知らなくても良い(その時点で到底理解できないこと)までやろうとするよなw
.resxは、リソース(画像とか音声・テキストデータ)関係のファイルでVSが自動生成しているんだが、別に中身がどうとか気にする必要はない。
そういうのを真剣に気にして終いには、ILを読むとかわけのわからないことに手を出そうとする。

552 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 12:34:16.13 ID:56qTwYt/.net]
doubleをdblと省略する表記方法はありますか?

553 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 12:35:33.64 ID:iiu9ggf5.net]
100MB程度のテキストファイル整形して読みたいのですがWebBrowserではちょっと重過ぎます
分割で読み込めればいいのですがいい方法ありませんか?

554 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 14:08:45.19 ID:zP0KaUIs.net]
exeファイルがILだからILを読むとかプログラミング言語の存在理由を理解してなさそう
コンピュータは全部機械語での動作だから機械語の勉強した方がいいと思うよ

555 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 14:33:19.93 ID:HNCOBt+u.net]
皆様に不快な思いをさせて申し訳ありません。

リソースファイルについてですが、Lockedプロパティの値を変えたときにリソースファイルが書き換えられました。
どうやら、コントロールが持てない情報はリソースファイルが利用されるみたいです。
>>497さんの言っていることが分かりました。

お答えいただいた方々には本当に感謝しています。ありがとうございます。

また一つ疑問が生まれたので質問いたします。

var table = new DataTable();
...
table.Rows.Where(...

このように記述したとき、RowsにはWhereメソッドがないとIDEに怒られます。
DataRowCollectionクラスはIEnumerableインターフェースを実装しているのに、なぜWhereメソッドが使えないのでしょうか?

556 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 14:41:50.95 ID:VtUJC+iX.net]
Whereが必要としているのは、IEnumerableではなく、IEnumerable<T>だから

557 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 17:08:20.36 ID:wuOw+s8i.net]
日本語解説サイト少ないね。最新の情報知るには海外サイト見ていくしかないのか

558 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 17:17:21.05 ID:VtUJC+iX.net]
日本語の解説サイトなんて、2008年ぐらいのまま止まってるのばかりだろ。

559 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 17:19:13.97 ID:nnAxfjVL.net]
C#とmysqlでアプリ作っていてるけどサーバーが外部でセキュリティ的に心配なので
すくなくてもSSLで接続したいのだが、mysqlサーバ側のsslを有効にする方法が見つかるのだけど
visualstudio側でデータソースに設定したいときにどうしたよいかの手段が見つからない
C# mysql ssl あたりでぐぐってもこれといって方法が見つから

560 名前:ないのだけど、
なにかヒントになるものがあればアドバイスください
[]
[ここ壊れてます]



561 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 17:58:17.90 ID:UfQouXyC.net]
>>537
using dbl = System.Double;

でもこんなことすんなアホって絶対言われる
自分も絶対後悔する

562 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 17:59:19.49 ID:6ritcPOX.net]
今はどうやってつないでんの?
MySQL Connector/Net の場合ならここでなんとかならんかね
https://dev.mysql.com/doc/connector-net/en/connector-net-tutorials-ssl.html

563 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 18:06:03.76 ID:6ritcPOX.net]
sshのが楽とは思うし、サーバ側で完結させてデータだけSSLでRESTfullとかでやるのもいいかと

564 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 18:29:46.19 ID:VtUJC+iX.net]
>>545
>>537
意味不明に略したら自分も他人もわからなくなるから、略してはいけない。
誰もが知ってるような単語は、略式を使う。

565 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 18:44:00.86 ID:/yUCkyPR.net]
間違いさえなければ別にforだろうがforeachだろうが好きなの使え派だったけど、他人のfor文終了条件ミスで半日潰したりすると流石に撲滅したくなるね
つーか皆いい加減LINQ使おうよ・・・

566 名前:デフォルトの名無しさん [2015/11/03(火) 19:27:35.29 ID:LOZNcNC7.net]
>>549
自分はLINK禁止にされたから辛かった。

567 名前:デフォルトの名無しさん [2015/11/03(火) 19:28:02.46 ID:LOZNcNC7.net]
間違ったLINQだな。

568 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 19:39:28.03 ID:VtUJC+iX.net]
LINQってそんなに難しいか?
むしろ、forとかwhile使うよりわかりやすいと思うんだが…

569 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 19:40:37.51 ID:RYOZjHqX.net]
LINQってforやwhileの代わりに使うものだったか?

570 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 19:47:07.94 ID:CJf+XPA2.net]
C#のlambdaは関数型から来た人が使うものであって
命令型の延長から来た人には理解できん類のもの
実際C#のlambdaシンタックスは初見からするとノイズが多すぎて、理解できないだろう

オブジェクト指向なのになんでここまで関数がでしゃばるのか
述語デリゲートが、なぜ普通のbooleanでダメなの?
っていらん疑問ばかりついてまわる



571 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 19:51:39.65 ID:UfQouXyC.net]
ラムダ式とLINQは関係ない

572 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 19:57:46.67 ID:Lrk43gML.net]
LINQアレルギーな奴ってろくに使ってないだけだから
そこにラムダ絡めちゃってさらに異質なもの認定してるだけ

573 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 20:05:19.20 ID:56qTwYt/.net]
>>545
ありがとうございました。

574 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 20:07:11.40 ID:sXl2Uj86.net]
すいません質問なんですけど
ほかのアプリのクライアント領域を取得したいんですが

[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern bool GetWindowRect(IntPtr hWnd, out RECT lpRect);

こっちを使うとそれっぽい値がはいってるんですが

[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern bool GetClientRect(IntPtr hWnd, out RECT lpRect);

こっちを使うと 座標(0,0) しか入ってないんですよね…
原因に心当たりのある人いらっしゃいませんか?
よろしくお願いします

575 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 20:18:09.71 ID:QAKXUKz2.net]
C#の拡張の歴史をみると >>554 の人が誤解していると思われる

実はLINQとラムダ式は大いに関係がある、式ツリーの実装のために作られたようなものだし
それがなければ、無名デリゲートで十分だった
むしろラムダ型という用語にも関わらず関数型とは関係はなくはないが実質関係無いという印象
関数型が好きな人は、C#におけるこの用語は勘違いしやすいかもしれない

まぁ、哲学的に考えればの話だけど

576 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 20:25:04.88 ID:UfQouXyC.net]
>>558
クライアント矩形だから位置は(0,0)に決まってますねー

親ウィンドウに対する相対位置を知りたいなら
GetWindowRectしてからMapWindowRectしないとー

577 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 20:30:37.38 ID:sXl2Uj86.net]
すばやい返事ありがとうございます
Mapの仕方がよくわからないんですけど
とりあえず単独で使うだけではだめなんですね
もう少し調べてみます
ありがとうございました

578 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 20:30:43.03 ID:UfQouXyC.net]
LINQなんて最初はコレクションに対する便利機能てんこ盛りの拡張メソッドという認識でOKじゃね?
罠とかあるから習熟してから突っ込んで考えればいいんであってー

579 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 20:32:31.59 ID:VtUJC+iX.net]
いちいち、delegate() { return x * 2; } とか書いてられないから、() => x * 2 のように簡潔に書けるようになったのではないか。
式ツリーのラムダ式とLINQのWhereとかで使われるラムダ式は、別物だと思う。
ラムダとか言ってるけど、所詮、デリゲートだし、シグネチャさえあえばメソッドを渡すこともできる。
() => x * 2 こういう表記の仕方をラムダ式と呼んでる程度でしかない。

580 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 20:53:44.50 ID:QAKXUKz2.net]
>>563
内部的な型が違うんだよ int a; の a と 3 はどちらもint型だが、後者には定数という属性も内部的には付与されている
コンパイラを作る側の人は意識しているが、使う側の人には意識させないように作られている
ある種の自動変換が入っているんだ
ラムダ式をデリゲートとしてしようしようとすると、自動的にラムダ式についているCompile()メソッドが発動してデリゲート型に変換してしまう



581 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 20:54:59.02 ID:HNCOBt+u.net]
>>541
ありがとうございます。解決しました。
しかし、なぜDataRowCollectionクラスがIEnumerable<DataRow>の実装でないのか疑問ではあります。
まあ歴史的な理由だとは思いますが…。
(例えばDataRowCollectionクラス実装時はジェネリックという概念がなかったとか…)

582 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 20:56:16.62 ID:56qTwYt/.net]
asp.netで
DataTable dt = new DataTable();
GridView1.DataSource = dt;
とやって、2次元のテーブルの中身をグリッドビューにEXCELの画面みたいに
出しているのですが、セルの中で改行させる方法が分かれば教えて下さい。

583 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 20:59:48.89 ID:QAKXUKz2.net]
DataSetクラスはジェネリックスの無かった.NET1.0の頃からあるからね
ジェネリックのDataSet欲しいね・・・

584 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 21:10:25.83 ID:VtUJC+iX.net]
>>565
ジェネリックができたのは、.NET 2.0。それ以前は、ジェネリックそのものがなかった。
DataRowCollectionあたりができたのは、.net 1.0だから当然、ジェネリックではない。
後からがIEnumerable<DataRow>ぐらい付け足せるだろうと思うかも知れないが、既存の古いコードを破壊しかねないという危険性がある。
非ジェネリックなものは、rows.OfType<DataRow>() でがIEnumerable<DataRow>に変換して利用するのが吉だろう。

585 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 21:25:41.32 ID:Q+Hc78/A.net]
ideone.com/DfxBRT
すみません...
このプログラミングの実行順序?というか解説を
お願い致します..

586 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 21:32:28.64 ID:VtUJC+iX.net]
>>569
断る。スレタイの言語名1000回読んで出直してこい。

587 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 21:36:42.56 ID:Q+Hc78/A.net]
あ、Cじゃないスレでしたね
すみませんでした

588 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 21:37:56.39 ID:Qi78cw7w.net]
どうでもいいけどヘタクソなサンプルだなあ
これ見て再帰スゴイとか思う学生がいるとは思えない

589 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 21:41:06.36 ID:QAKXUKz2.net]
キチガイ回答者のかまってちゃん発動かいな
死んでおけ

590 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 21:42:15.24 ]
[ここ壊れてます]



591 名前: ID:Q+Hc78/A.net mailto: >>572
この例を見ても再帰がよく分かりません...
[]
[ここ壊れてます]

592 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 22:07:18.95 ID:UfQouXyC.net]
aより前の文字コードがきたらどうすんだろ

593 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 22:40:42.74 ID:UVzGbDip.net]
サンプルなんだから特定の条件下で動けばいいんだろ。
この程度は自分なりにでも解析をしてから分からないところだけを質問して欲しいがな。

594 名前:デフォルトの名無しさん mailto:sage [2015/11/03(火) 22:42:31.39 ID:/yUCkyPR.net]
DataTableExtensionsでいいんじゃね?

595 名前:デフォルトの名無しさん mailto:sage [2015/11/05(木) 22:45:40.69 ID:6rpVQh8a.net]
超初歩的な質問ですみません

インターフェイスクラスを実装した構造体クラスがあって、その構造体クラスのインスタンスをあるメソッドに渡すとします。
そのメソッドの仮引数の型はインターフェイスクラスにしておきます。

このときに、メソッドの仮引数が値渡しであればコンパイルエラーとならないのに、参照渡しにするとエラーとなる理由はなぜなのでしょうか?

596 名前:デフォルトの名無しさん mailto:sage [2015/11/05(木) 23:10:16.20 ID:ExWVN0qD.net]
>>578
構造体なのかクラスなのかはっきりせい

597 名前:デフォルトの名無しさん mailto:sage [2015/11/05(木) 23:15:59.04 ID:WQByrXLp.net]
何言ってるかさっぱり分からん

598 名前:デフォルトの名無しさん mailto:sage [2015/11/05(木) 23:17:05.85 ID:JipnsoZF.net]
>>578
参照渡しはメソッド側で引数に値を代入して書き換えできる
同じインターフェイスを実装した別の型の値を代入される可能性がある
また、値型をインターフェイスにキャストするにはボックス化が必要なのでコピーが発生するから参照渡しは不可
インターフェイス通したいならジェネリックのwhere使う

599 名前:578 mailto:sage [2015/11/05(木) 23:56:44.30 ID:6rpVQh8a.net]
>>579
すみません、構造体です。
まだあやふやな理解で申し訳ないです。

>>581
ボックス化というのがいまいちわかっていないですが、
値型を参照渡ししようとしてもコピーしないと出来ないということですか?

ジェネリックとは?ちょっと調べてみます。
ありがとうございます。

600 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 00:22:51.45 ID:v3nYR+i3.net]
intを渡すとして、

不可 → void Hoge(ref IComparable<int> cmp){}

可 → void Hoge<T>(ref T cmp) where T : IComparable<int>{}



601 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 00:31:22.76 ID:dWA72Rvv.net]
>>582
構造体(struct)にもインターフェースは、指定可能。
すべての型は、object型として扱えるため、object型に代入可能で、構造体(値型)も当然、objectとして扱える。
object型というのは、言い換えればobjectクラスなので、objectは、参照型。

構造体など値型を参照型として扱うとき必要なのがボックス化と呼ばれるもの。
また、インターフェースも参照型なので、インターフェースとして受けてしまうとボックス化が発生する。

イメージ的には、 ボックス化されるとき、new object( 10 ) のような感じで値型をラップした新しいオブジェクトが作成されている。
void Foo( IHoge x ) のようなインターフェースを受け取るメソッドに値型を渡しても、Fooメソッドでは、別のオブジェクトになっているのでいくら書き換えたところで無意味。

値型でなく、最初からクラスとして作っておけば、そういう問題は起きないが構造体を使いたい場合、下記のように制約付きのジェネリックメソッドを使うと良い。

static void Foo<T>( ref T arg ) where T : IHoge {
arg.Value = 100;
}

こうすれば、ボックス化は、発生しないで、IHogeインターフェースのメンバーを呼び出すことが可能となる。
refは、参照渡しさせるために必要。

602 名前:578 mailto:sage [2015/11/06(金) 00:42:25.19 ID:pjudYN7I.net]
>>583-584
教えていただいた通りに修正したらエラー解消しました。

詳細な解説ありがとうございます。
納得できました。

603 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 09:12:45.36 ID:MQ0OQAyt.net]
1つのプロジェクトから2つ以上のアセンブリを出力するようにってできる?
こんな感じにA.csproj → A.x86.dll A.x64.dll

604 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 12:16:37.98 ID:955qm0wN.net]
プロジェクト構成を追加する

605 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 12:19:39.17 ID:dWA72Rvv.net]
Any CPUじゃダメなの?

606 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 15:32:24.63 ID:guayBMf4.net]
ダメだろ

607 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 15:39:55.16 ID:KrpwsfQj.net]
クラスライブラリプロジェクトでEntityFrameworkを利用する
メインのプロジェクトではEFに直接関わるようなコードは一切書いていないのに
エラーが出て、どうやらApp.configをクラスライブラリのそれと同じように書き
EFもインストールしないといけないみたいですがなぜですか?
メインのコンソールアプリでは、
ClassLibrary1.Run();
としか書いていないのに

608 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 16:20:31.16 ID:hUa1dWCf.net]
>>588-589
dllならAny CPUで良い気がするけどな

>>590
そのクラスライブラリがEF使ってるからだろ

609 名前:質問者 mailto:sage [2015/11/06(金) 19:15:27.36 ID:n93wU3zk.net]
public const string[] names = { "abe", "kume", "ume"};
は何故できないの?
C#っておかしい

610 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 19:45:53.50 ID:DdHE3j1N.net]
歴史のある言語だし、配列のconstを許すと何か不都合があるんじゃないかな
知らんけど



611 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 19:49:11.59 ID:JLRIGyKN.net]
一般的な業務システムにEF使うのってお前ら的にどう思う?

DB周りに中間テーブル勝手に作られたり
とかどうなんかなーって思うんだけど

612 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 19:49:47.56 ID:H8/mSBf4.net]
C#のconstはmutabilityを示す修飾子ではない
mutabilityはクラス特性の一つにすぎない

613 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 19:52:12.27 ID:O+3ivu6x.net]
>>594
テーブル管理をきっちりして、メンテナンスが面倒な糞長いクエリ作らないことさえ心がければ問題ないと思う
それが出来るなら何でもOKだろと言われたらそれまでだが

614 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 20:01:54.19 ID:hUa1dWCf.net]
>>594
コードファーストで、プログラマがモデル変更したらDBレイアウト変わるとか
DB層とアプリ層と分離するような業務システムだとあり得ん

EFはコードファーストしかないわけじゃないけど
最近、既存DBからコードファーストとかいうわけわからんオプションも追加されたけど
EDM作らんで良いし、マッピングの自由度上がるから、これが結構いい感じだぞ
俺はこれをコードセカンドと呼ぶ事にしたw

615 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 20:02:50.21 ID:Vl4Fajoj.net]
構造体のconstもできないよね
あとIntPtr(これは仕方ないか)

616 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 20:04:07.68 ID:v3nYR+i3.net]
>>594
DBファーストなら中間テーブルは作られない(たぶん)
パフォーマンスに引っかからなければ採用していいと思う

617 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 20:07:22.09 ID:v3nYR+i3.net]
>>592
ミュータブルなら配列があれば許されたかもね…

618 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 20:11:37.63 ID:VIb2xLBB.net]
constはコンパイル時にリテラルを埋め込むからnewで生成するインスタンスはconstへ代入できない。

C#で配列を定数扱いしたければReadOnlyCollectionを使う。

619 名前:デフォルトの名無しさん [2015/11/06(金) 22:35:43.69 ID:ZOMBif/U.net]
readonlyにするとそのメンバの参照を変えることはできなくなりますが、そのメンバのメンバの値は変えれますよね?

そのメンバのメンバもreadonlyにすることはできないんですか?

620 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 22:45:54.70 ID:v3nYR+i3.net]
メンバをreadonlyプロパティにすればいい

コレクションならIReadOnly〜インターフェースがある



621 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 23:10:20.05 ID:lDi+bZZ1.net]
C#のmutabilityはクラス特性で備えるもので
修飾子で指定するものじゃないと言ってんだろ
理解力が不足しているのか?

622 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 23:18:27.60 ID:dWA72Rvv.net]
こんな感じでプロパティ作れば、初期化以外で変更できないようにできるけど…

shield class Hoge {
public int Property1 {
get;
} = 10;

public int Property2 {
get;
} = 20;
}

623 名前:デフォルトの名無しさん [2015/11/06(金) 23:25:34.03 ID:ZOMBif/U.net]
>>603
ありがとうございます。使ってみます。

>>604
ちょっと調べたけどよくわかりませんでした。
久しぶりに会った友達に、おめ

624 名前:ぇずいぶんとミュータブルなぁーって使う感じでしょうか? []
[ここ壊れてます]

625 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 23:28:23.63 ID:x7E/To5I.net]
>>605
もうちょっとこの構文は何とかならなかったのかと思うな…

626 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 23:42:18.13 ID:KrpwsfQj.net]
>>591
そこがよくわからないんです
クラスライブラリでしか使ってないEFが
なぜメインプロジェクトでもインストールして
App.configまで書き換えないといけないのか
例えば、zipライブラリやその他ライブラリを
ライブラリプロジェクトで使っていても
メインプロジェクトでそれらライブラリを参照しなくてもいけてます
同じように分離できないんでしょうか?

627 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 23:51:07.90 ID:MmN1hyKF.net]
>>604
その説明は、誤解を生みまくる
const言っているなら C++ のアレを意識しているんだろうから
C++のmutableとゴッチャになる

628 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 23:55:31.99 ID:MmN1hyKF.net]
Java全盛期の時代に、政治的な都合でJavaクローンとして生まれたC#ゆえ
書き換えに関する制御は基本的に期待しないほうが良い、というか諦めたほうが良いでしょう
当時constなど不要、高速化目的ならオプティマイザが頑張ればいいという考えが席巻していたから残念な事になってしまっている
目的は高速化じゃないといっても話聞きゃしない話聞かない回答者みたいなので一杯になってたからな

629 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 23:55:56.97 ID:J1IjfUsv.net]
>>608
ライブラリが特定の場所の特定のDBに紐付いてたら再利用性も柔軟性もクソもないだろ?
構成はアプリ側で指定するんだよ

630 名前:デフォルトの名無しさん mailto:sage [2015/11/06(金) 23:59:22.58 ID:/KOBRm1I.net]
MVVMパターンについて質問です。
Modelクラスがツリーのデータを保持できるように定義されている場合、

class Model
{
 public List<Model> Children;
 public Model Parent;
}

ViewModelクラスはどのように作ればよいのでしょうか。


class ViewModel
{
 public ObservableCollection<ViewModel> Children;
 public ViewModel Parent;
}

ユーザーがアイテムを追加・削除した際の、VM〜M間でのChilrenのやりとりで良い方法が思い浮かばないのです。



631 名前:デフォルトの名無しさん mailto:sage [2015/11/07(土) 00:03:09.47 ID:HCtDVk7w.net]
地道にモデル側のコレクションにAddしたりRemoveするしかないんじゃないのっと

632 名前:デフォルトの名無しさん mailto:sage [2015/11/07(土) 00:05:43.30 ID:mc1zorkl.net]
>>612
そんなもんModelをそのまま公開すりゃいいよ
いちいちラップするのは無駄に複雑になるだけ

633 名前:デフォルトの名無しさん mailto:sage [2015/11/07(土) 00:10:14.79 ID:bqVTu3cR.net]
ちょっとなにいってるかわからないですね

何に使いたいのでVMいるのかがわからない

634 名前:デフォルトの名無しさん mailto:sage [2015/11/07(土) 00:37:06.17 ID:rJMrVjho.net]
>>611
特定のDBには既にひも付けされてますよね?
Entityクラスを事前に静的に生成しているわけだし
特定の場所に関しては確かにそうですが
dbパスを渡すだけでいいはずなのになんでEF入れなきゃだめなんでしょ?

635 名前:デフォルトの名無しさん mailto:sage [2015/11/07(土) 00:38:32.76 ID:VdNkzOpu.net]
mvvm関係ないけど、オブジェクトが持ってる参照をそのまま外に出すのとカプセル化の間でいつも悩む
かといって毎回コピーしたら遅いし

636 名前:デフォルトの名無しさん mailto:sage [2015/11/07(土) 00:47:30.53 ID:3j5S0EXp.net]
>>617
インターフェイス通せばいいじゃない
>>612
選択したツリー項目毎に特定のVM表示したいの?

637 名前:デフォルトの名無しさん mailto:sage [2015/11/07(土) 01:36:23.40 ID:X2ab0wjO.net]
>>616
EF使うのに入れなくていいと思う理論がわからん

638 名前:デフォルトの名無しさん mailto:sage [2015/11/07(土) 01:55:38.19 ID:rJMrVjho.net]
>>619
実際に使うのはクラスライブラリ側だけだからです。
EFじゃなくて他のライブラリの場合は
メインプロジェクトに入れなくても動くのに
なぜEFだけ特殊なのかが知りたいんです

639 名前:デフォルトの名無しさん mailto:sage [2015/11/07(土) 02:09:02.01 ID:VdNkzOpu.net]
>>618
やっぱそうなるよねぇ
操作用のインターフェース

640 名前:作るの面倒だけど []
[ここ壊れてます]



641 名前:デフォルトの名無しさん mailto:sage [2015/11/07(土) 03:22:43.92 ID:X2ab0wjO.net]
>>620
そもそもほんとにメイン側でなにもしてないなら
実行時に必要なライブラリがそろってれば良いだけで、メイン側プロジェクトにEFの参照いらないけど?
別に特殊でもなんでもない
もしそんな前提があるなら、ASP.NETでEF使えなくなるじゃないか

642 名前:デフォルトの名無しさん mailto:sage [2015/11/07(土) 03:28:58.48 ID:rJMrVjho.net]
>>622
>>590
一行しか書いてないのになぜ参照がいるんですか?

643 名前:デフォルトの名無しさん mailto:sage [2015/11/07(土) 05:33:11.29 ID:cHn3VkC0.net]
>>623
クラスライブラリ側のapp.configを見てごらん
EFをインストールしたときに書き換えられた部分があるでしょ
そしてよーく考えよう

644 名前:デフォルトの名無しさん mailto:sage [2015/11/07(土) 17:24:35.95 ID:X2ab0wjO.net]
>>623
知らんがな
ソース全部晒してみろ

そういえば、エラー出るでどんなエラー出たか書かない奴の質問は答えるだけ無駄って誰かが言ってたな

645 名前:デフォルトの名無しさん [2015/11/07(土) 17:54:38.72 ID:1m+5NuQy.net]
データベースやサーバーアプリでマイクロソフト系技術はもうだめだね
消えゆく運命だろ

646 名前:デフォルトの名無しさん mailto:sage [2015/11/07(土) 23:27:09.98 ID:qRUcE/WB.net]
貴重な時間を浪費させていくスタイルだから無駄ではない
価値マイナス

647 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 00:28:50.73 ID:QQOP8UEs.net]
>>626
https://github.com/damienbod/SQLiteExamples
やってることはこれと同じです
これもメインプロジェクトでインストールしてます

メインプロジェクトのApp.Configを書き換えない場合
エラー
No connection string named 'MyEntities' could be found in the application config file.
これをぐぐると、App.Configをメインプロジェクトにコピペしろと回答がある
が、コピペしても、
error 0152: No Entity Framework provider found for the ADO.NET provider
with invariant name 'System.Data.SQLite.EF6'.
Make sure the provider is registered in the 'entityFramework' section of the application config file.
となる、つまりインストールしろってことなんだろうけど

648 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 02:51:20.55 ID:tK1NbI7K.net]
>>628
それはアプリケーション定義ファイルを設定しろと言ってるだけで
EFをインストールしろとも参照設定しろとも言ってない

実際それじゃないが、メインアプリで参照設定なしでもアプリケーション定義ファイルを設定すれば動くのは確認した
(当然アセンブリは参照できるところに存在する必要はある)

なぜアプリケーション定義ファイルの設定が必要なのかは、EFのコンポーネントがデフォルトでそれを見に行くから
調べた感じではアプリケーション定義ファイルなしでも動くように出来そうだったけど、かなり手間かかりそうなので試してない
接続文字列だけなら簡単なんだが

649 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 03:54:18.19 ID:QQOP8UEs.net]
>>629
MyDbLibraryを参照すれば、設定なしで複数のアプリで同じDBを簡単に
取得出来るようにしたかったんですが
できなくはないけど、面倒そうですね
んーやっぱりEF使わないでやったほうが後々楽かな

私事のためにお時間取らせてしまって申し訳ない
調べて頂いてありがとうございます

650 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 10:17:34.08 ID:gApUJ0pc.net]
教えてください

■質問1
下記のような構造体を配列にして内容を格納しています
(本来はもっとパラメータは多いですが簡略して3つにしてます)

struct test {
 private int id; //100000以上からの6桁
 private string name;
 private int type;

 public Test(int ID, string Name, int Type) {
  id = ID;
  name = Name;
  type = Type;
 }
}

この構造体配列の中から該当するIDを検索し、その添え字番号を得たいです
ForEachやwhileなどのループ内でIDを比較するしかないでしょうか?

「C# 構造体 検索」でぐぐってみたものの、
どのようにすればいいのかが見当もつきませんでした

■質問2
そもそも、このようなデータを構造体として用意するのは良いのでしょうか?


以上、よろしくおねがいします



651 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 10:48:27.07 ID:S9+EFBLU.net]
LINQとかで検索するのもあるけど、Dictionary使うのがいいと思うが

652 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 11:23:47.79 ID:pl2PgCRK.net]
C#とWPFでさくっとアプリを作れるようになりたいと思い、とりあえずC#の簡単なテキストは流し読みしたが…
(他言語の経験はあるので)
WPFはどのテキストを読んだらいいんだろう?
(開発にはLivetを使うといいと聞いたけど、
通常のWPFが分かっていること前提っぽいので、ちゃんと勉強しようと思ってます)

プログラミングWindows 第6版 上/下 が名著らしいけど、ストアアプリ特化で学習には向かない…?
このスレ的にオススメのテキストを教えてくれないだろうか

653 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 11:45:20.22 ID:qE8APb0L.net]
Livetは2年前ならともかく、今は作者が飽きているので薦めない
Prismを使った方がよい

テキストに関しては知らない
数年前ならEssentialを薦めただろうが
いかんせん古すぎる
WPに対応する必要がないならストア向けのテキストも無駄だろうな

654 名前:633 mailto:age [2015/11/08(日) 12:05:28.12 ID:pl2PgCRK.net]
>>634
なるほど…今はPrismの方がいいのか。さんくす
テキストは…ストアアプリは作る気がないしなぁ

プログラミングWindowsのWPF XAML向けの解説は一応あるけど、
さすがにいちいち照らしあわせて読むのは大変そう
blogs.msdn.com/b/shozoa/archive/2014/07/24/using-programming-windows-chapter1.aspx

結局テキストをどうしたらいいのかわからんね

これを見つけたんだが、まだ去年のものだし古くもなく大丈夫だろうか?(同内容のkindle版もあり)
www.slideshare.net/okazuki0130/wpf45-38048141

655 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 12:49:12.21 ID:cfidXKbm.net]
>>631
List<T>でFindeIndex(s => s.id == searchID)とか
でもidがprivateだな

検索数多いなら632が言うようにキーがIDの辞書作った方が速い

656 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 13:05:36.69 ID:qxSNyhqm.net]
privateなプロパティを持っているとLINQで匿名型をnewしようとしてもアクセス出来ないレベル
というエラーが出るしなあ
そして匿名型はコンストラクタを呼び出す手段がないので次のようなコードがコンパイルできない

ideone.com/QVNres

657 名前:631 mailto:sage [2015/11/08(日) 13:35:56.75 ID:gApUJ0pc.net]
回答ありがとうございます

>>632
Dictionaryを詳しく調べてみます
データを格納後に、Dictionaryで別途索引を作る…というイメージですよね、たぶん
LINQも調べて勉強してみます

>>636
FindIndexも調べてみます
FindIndexは構造体のIDがprivateでなければ使えるのかな?
なお、件数はおそらく多くなりますので、Dictionaryでいこうと思います

>>637
構造体のつくり自体がそもそもまずいということですね
データを扱うのに構造体が良さそうだと思い使おうとしていたのですが、
まだまだ勉強不足のようで…勉強し直します
匿名型というのも分かってないレベルです


ひとまず頂いた回答・ヒントからいろいろ調べてやってみます
つまづいてどうしようもなくなったらまた質問に来ますので
その際はみなさんよろしくお願いします

658 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 14:11:47.01 ID:IOiPLIcZ.net]
>>635
wpfのことは忘れてFormsアプリを作

659 名前:驍だ []
[ここ壊れてます]

660 名前:633 mailto:sage [2015/11/08(日) 14:13:41.26 ID:pl2PgCRK.net]
>>639
今あえてWPFでなくFormsを学ぶ理由は何なんでしょう?



661 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 14:21:58.19 ID:qxSNyhqm.net]
匿名型やめて普通にnewすれば行けるよ
この場合でも読み出し専用のプロパティは必要だけど

ideone.com/VQnbmB

662 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 14:22:03.96 ID:qE8APb0L.net]
そりゃあ情報量だろ

663 名前:633 mailto:sage [2015/11/08(日) 14:24:04.50 ID:pl2PgCRK.net]
>>642
なるほどな…すまんが、それでもやっぱりWPFでいきたいわ
情報量が、と言うならC++でもやってろ、という話になるので

664 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 14:26:58.36 ID:qxSNyhqm.net]
それとToArray()はこの場合は不要だった
遅延評価でいいや
それとインデックスが不要なんだから(tt, n)でなくて(tt)でいい
適当に書いたからいろいろおかしかった

665 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 14:28:16.90 ID:jwSrphbk.net]
フォームアプリだとストア対応はまた別スキル?

666 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 14:48:07.12 ID:t8ezhEA7.net]
WPFはマイクロソフトからもとっくの昔に見捨てられたコンテンツだからな
2010年くらいからほぼ更新されてない
開発者も減ってるし今更やっても無駄
そんなのやるくらいなら注目度高いElectronでもやったほうが100倍モチベーション上がるだろ

667 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 14:48:47.97 ID:0dVpsRSu.net]
>>638
キーが決まってるならKeyedCollectionなんてのもある

構造体orクラスの問題は、大抵の場合、クラスの方がいい
構造体はnewのコストが問題になった時に試してみればいい

668 名前:633 mailto:sage [2015/11/08(日) 15:05:42.53 ID:pl2PgCRK.net]
>>646
すまん。Electronも考えたんだが、いかにもWebアプリっぽい見た目と動作になるのが気持ち悪くてなぁ…
WPFは見捨てられたと言うのであれば、皆WindowsでGUIアプリを作るには何を使ってるんだろう?

669 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 15:10:08.20 ID:qL6T2MEr.net]
>>646
.Net4.6で改良されてるし、どこまで本気か分からないけど最近微妙にやる気出してるようだよ。
blogs.msdn.com/b/dotnet/archive/2014/11/12/the-roadmap-for-wpf.aspx

670 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 15:14:56.34 ID:b5oYWyCu.net]
フォームのほうが見捨てられてるからWPF以上に未来はないと思うが、だからといってWPFに乗り換える気が起きない。
んで結局、フォームから未だ抜け出せずにいる。



671 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 15:18:18.25 ID:t8ezhEA7.net]
これからはWPFと言いながら10年近く全く普及せずに下降線を辿ってきたからな
だいたいGUIアプリにしてもWindowsデスクトップに固執するような時代はとっくに終わってる

672 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 15:51:44.93 ID:+dkH7XCP.net]
WPFは早期に標準コントロールを充実させていれば多少は広まったんじゃないのかな

673 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 16:09:34.75 ID:b5oYWyCu.net]
MVVMだなんだの言いながらデフォルトでそれ系のまともなフレームワークが入ってないのが敗因だろうな。

674 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 16:21:43.65 ID:IOiPLIcZ.net]
wpfのまともな文献がないというのが
このFrameworkの実態を表しているような気がするね
ネットにあるのは、Formsとは違うんです!っていう営業トークか
MVVMという概念がすごいんですってだけだろ

実際MVVMが必要になるような高度なアプリケーションなんてあるのか?
リアルタイムにデータを処理するにしてもイベントドリブンモデルのほうが簡潔で扱いやすい
MVVMはオブジェクト指向を「こじらせた」典型例だと思うんだよね

675 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 16:40:41.80 ID:qWpIgAsz.net]
>>654
いや英語では結構本出てるよ。
MVVMがウンコなのは同意するけどw

676 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 16:57:42.27 ID:qE8APb0L.net]
設計がとにかく野暮ったい
僕の考えた最強の〜って感じ
引き算を覚えてくれ頼むから

WPFを

677 名前:除けば成功しているMVVMフレームワークはいくらでもあるし
設計センスの問題だと思う
[]
[ここ壊れてます]

678 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 17:02:03.13 ID:t8ezhEA7.net]
mvcとかやりたければ本流のhtml5使えばいい
標準フレームワークも用意されないWPFが流行るわけもない
マイクロソフトも普及させる気はないよ
ポーズだけ
Silverlight潰したりマイクロソフトは既に独自技術の普及を断念してる
代わってTypescript用意したりweb標準技術の採用に舵を切ってる

679 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 21:46:02.90 ID:SGCCwhdk.net]
>>650
フォームは現時点でほぼ完成しているから何も変える必要ないんじゃないの?足りない機能ある?

680 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 22:53:03.65 ID:X/vorztS.net]
prism使って、データバインドが非常に協力でコードもすっきり書けるけど、
Formsなら簡単に出来た事がものすごく手間だったり、
独自のUIが簡単にというが実際はとてつもなく面倒くさい。
datagridの配色変えるだけでも、
あの部分をどこで色を変えられるのか調べるだけで相当時間がかかる



681 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 22:54:49.77 ID:b5oYWyCu.net]
>>658
フォームに関しては、今更機能追加されたところであれだし、現状維持してくれれば十分だな。

682 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 22:55:41.36 ID:HlEs+VqN.net]
俺はMFC FeaturePack並のツールバーやドッキングウィンドウが標準で欲しいなぁ。
今はサードパーティー頼みだし。
MFCも、もうメンテナンスモードだろうと思ってた頃にFeaturePack出てきたんだから
ワンチャンあると信じたい。

683 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 22:58:52.76 ID:l/gAevhW.net]
WPFのDataGridは全く使い物にならない
あの糞がそのまま放置されてるんだから、MSのやる気の無さがよくわかる
まあそもそもWPFは設計思想的にDataGrid的なものはListViewをカスタマイズして作るもんであって、
出来合いのDataGridをそのまま使うようないい加減なGUIでいいのならWPF使う必要は全く無いんだけどね

684 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 23:04:24.23 ID:b5oYWyCu.net]
WPFならMVVMでドメインとビューの分離が〜とか言うが、フォームでもある程度は、データバインドできるし、
WPFほどまでは行かないにしろ、そこそこの分離は、可能だと思う。

いざとなれば、ビューを直接扱えるし、WPFみたいに変に手回ししなくていいしフォームのほうが楽。

685 名前:デフォルトの名無しさん mailto:sage [2015/11/08(日) 23:26:11.25 ID:X/vorztS.net]
WPFはC#を習得した人用だからなあ、
いきなりC#とXaml両方まなぶのはきついんじゃない?

GUIを今後一切変更しないならFormsでいいだろうけど、
変更したくなった時、クソ面倒くさい

686 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 00:30:33.40 ID:nH7Pt/o2.net]
言語としてのC#にそんなに覚えることがあるとは思えんが、
WPFは覚えることだらけだな。

しかもMSDNのどこにも明示されてない仕様も結構あってかなり萎える。

687 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 00:42:01.77 ID:YzX/XRY3.net]
>>662
>DataGrid的なものはListViewをカスタマイズして作るもんであって、
このカスタマイズする前に大量のオブジェクトの前に力尽きる人が多かったから
WPFは流行らなかったんだろうな

オブジェクト指向の継承って結構早い段階から使うのやめとけ
って言われてたと思うけどwpfって継承地獄なんだよなあ

688 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 01:51:51.42 ID:q+BDOfSy.net]
継承(is a)より包含(has a)とか、無駄に複雑な継承関係にしないとかなら分かるけど、
一般論としてそんなこと言われてたっけ?

689 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 03:56:53.75 ID:m77m/g5H.net]
WPFが出た当時、そちらに移行しなかった最大の理由は
リファクタしたら、XAMLだけ手作業修正になったから
今は、ちゃんと連動してるんだろうか?
していた

690 名前:ニころで、あんだけ複雑で、しかも機能的にフォームから浮いていると移行する気にはなれないけど []
[ここ壊れてます]



691 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 04:06:23.65 ID:m77m/g5H.net]
>>654
同感、WPFからATL臭がする
これからはWPFだといっている人は何見て、WPFが流行っていると思っているのだろうか?

692 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 08:53:11.53 ID:AkXykSSl.net]
wpfのControlTemplateは、FormsのOwnerDrawに比べたら格段に楽だと思うけどな

693 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 09:23:03.24 ID:eW5XCVAC.net]
部分を誇っても仕方ない
一芸に秀でていれば使えないこともない人間とは違うんだよ
フレームワークは全体のバランスが求められる

694 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 12:09:04.18 ID:6wZmioGw.net]
でも結局は作りたいものに適した形をしているか、ってだけだからな。
適してれば(=開発工数を抑えられるならば)、どんなんだって使うことはあるし。

ここで声高に否定することに意味があるとは思えん。むしろなにか作為でもある?

695 名前:デフォルトの名無しさん [2015/11/09(月) 12:24:46.82 ID:7FJWPJQr.net]
自動生成はWPFのが簡単でいいよね
工数削れるよ

696 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 12:30:10.88 ID:eW5XCVAC.net]
否定派の前で肯定するから否定されてんだろ
頭悪いんじゃねえのか?

697 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 12:35:57.06 ID:EOVCHtBm.net]
639が聞かれてもいないお節介を焼いたのがそもそもの原因だ
発狂するまでXAML書き続けて死ね

698 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 13:09:55.63 ID:6wZmioGw.net]
声高に否定しhとかないと不安なのかと。w

699 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 13:22:50.09 ID:eW5XCVAC.net]
書き込みの推敲もできないほどではないんじゃねえの〜
クソでも漏らしそうなのか?
漏らすなよ、ただでさえ臭いんだからな

700 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 13:31:13.13 ID:6wZmioGw.net]
え。まさかの図星だったんだ。w



701 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 16:23:18.75 ID:m77m/g5H.net]
>>672
作為とか特にないけど、俺の知っている業界の範囲でWPFを使っている所なんてないし
一時使っていたところも全部切り上げてFormsに戻ったからな
誰が使っているんだ?って思って書いてみた

702 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 16:25:52.00 ID:m77m/g5H.net]
あと、自分の経験から、フレームワークが死ぬかどうかの嗅覚センサーは高精度にしておいた方がいい
システムが大規模になってから、さあ元に戻ろうとかいう話になると地獄みるでw

703 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 18:25:32.73 ID:s3Itz59O.net]
WPFは、やたらと抽象化しすぎで、解りづらいんだよなぁ

704 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 19:32:07.70 ID:YzX/XRY3.net]
声高に否定しとかないと、ふらっと誰かが立ち入るかもしれないだろ?
誰も助けられないエリアに人が立ち入ろうとしたら全力で止める
それは時間の無駄と戦い続けてきたICT分野の精神そのもの

705 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 20:45:05.97 ID:XHl8ePvc.net]
出来損ない人間のくせにそういう意識だけ持ってられると非常に迷惑

706 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 20:47:24.37 ID:Z/Tj9+xS.net]
クズ同士で反目しあっていたらいつまでたっても地獄から抜けだせないよ?

707 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 20:48:06.82 ID:aHPhV6ij.net]
C#erならあらゆる分野でTypescriptを使っていくべきだろ
ヘルスバーグ監修だしな
あれはC#と違ってGoogleのAngular2に採用されて正真正銘の世界標準になった

708 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 20:49:00.07 ID:Kluqtjpy.net]
上を見るより隣の奴の足を引っ張って蹴り落とす方が楽しいから。

709 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 20:57:32.51 ID:Kluqtjpy.net]
ああ、typescriptはいいね。
空前絶後究極醜悪仕様のjavascriptのせいもあるが、
コードを書いてて幸せを感じられる。

710 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 21:17:06.11 ID:HVtjB7Nt.net]
スピルバーグ?(難聴)



711 名前:デフォルトの名無しさん mailto:sage [2015/11/09(月) 23:52:05.55 ID:xUV9On1g.net]
コマンドやプロパティ周りに同じような記述をしないといけないのが面倒
すべてのイベントがコマンドでできたらなー
トリガー?イベントを言い換えただけじゃないか
ビヘイビア?そこまでして必死に分離する必要あるのか?
それに物理的に分離してても、特定のViewに意味的に依存したコードに変わりないよね
だったらイベントでいいじゃない
とにかくMVVMの強迫観念が付きまとう
オシャレなGUIもいらない
もっさり
情報がない
調べる時間が勿体無い
Xamlとコードを行ったり来たりが面倒くさい

フォームはイベントハンドラだらけ、データバインド面倒ってだけかな

712 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 00:37:56.86 ID:TRBM8DsG.net]
Xamlはそろそろ終わりだろう
流行ってない上に目玉が需要のないWindowsストアだからお先真っ暗
MFCと同レベルの状況だよ
そのなのやる暇あったらTypescriptとNode.jsをやれ
Visual Studio CodeはElectronで作られてるしNode.jsデバッガ標準装備だしMSも舵をきった
Web標準技術路線の流れは止まらんよ

713 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 01:49:09.88 ID:Ovp34esS.net]
じゃあ、次期VisualStudioはwebアプリかな。

714 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 01:54:38.52 ID:5g3VdvzW.net]
VS Codeあるしな

715 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 02:33:43.83 ID:fx55niMq.net]
フォームで不満があるすれば、ちょっと凝ったデザインにしようとした途端、恐ろしく面倒なことぐらいだな。

716 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 04:07:57.25 ID:Vbdvj8E0.net]
MFCはまだまだ普通に需要あるでしょう
おっさん全然離れないし
WPFの絶望感はなんともかんとも
古い人は移行しないし、新しい人は来ないし、ストアとか誰が使うんだよって感じだし
やりたきゃ、素直に別途スマートフォンに特化したOS作りゃいいのにね

717 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 05:05:14.87 ID:x1SFUzCz.net]
Windows用のちょっとしたツールを作る場合みんな何で作ってるの?
スクレイピング、zip再圧縮、画像加工、ファイル移動、ファイルリネームなど
これからそれぞれ自分用に作っていこうと思ってる

718 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 05:24:29.79 ID:Vbdvj8E0.net]
batファイルかなw

719 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 07:03:54.72 ID:ysgs5SCx.net]
スクレイピングはruby
zipはそのまんまzipコマンド
画像加工はimagemagick
全体の制御やファイル操作はperl

720 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 11:39:52.84 ID:mVStRMDa.net]
全部python



721 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 13:27:08.88 ID:Y54LX3ro.net]
powershell

722 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 15:30:35.44 ID:zPPOQadD.net]
Windows7とVS2012だと、Bluetooth LEのGATTプロファイルとかって使えないの?

https://msdn.microsoft.com/en-us/library/windows.devices.bluetooth.genericattributeprofile.gattdeviceservice.aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-1

723 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 18:12:09.50 ID:jCBnlrqE.net]
MSから出してるのではGATTは使えないと思った

724 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 21:42:14.52 ID:96BnYR0W.net]
非常に細かいことなのですが、
IEnumerable<T>を実装したクラス(もしくはオブジェクト)のことは何と呼べばいいのでしょうか?
列挙子?それともコレクション?
どちらも微妙に違う気がするので、質問させていただきました。

725 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 21:46:42.28 ID:ysgs5SCx.net]
一般的にはコレクションでいい
順番を意識する場合は明示的に「要素のシーケンス」と呼んだりすることもある

726 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 22:03:45.37 ID:Iud ]
[ここ壊れてます]

727 名前:Fs22n.net mailto: >>689
使いこなせてないだけ。というか何か誤解してる。
使いまわししない場面でビヘイビアやトリガーを無理して使う必要ない。
[]
[ここ壊れてます]

728 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 22:05:22.32 ID:96BnYR0W.net]
ありがとうございます。
コレクションにします。

729 名前:デフォルトの名無しさん mailto:sage [2015/11/10(火) 22:13:49.61 ID:mVStRMDa.net]
たかがデサインパターンに強迫観念まで持ってしまうって凄い
影響されやすいにもほどがある

730 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 00:11:06.49 ID:Roxx949g.net]
iOSアプリの開発はAndroidアプリより30%安価--あるソフト開発会社が示したデータ
japan.zdnet.com/article/35073153/

また、Infinumは開発時の経験から、
Androidアプリのレイアウトで用いられるXMLの使われ方が、iOSで用られるWYSIWIGによるアプローチ
ほど効率的でない点を指摘している。


まさにこれ、xamlの不利な点もこれに同じ
対してiOSはformsの発展系みたいなシステムだから即効作れる



731 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 00:21:31.22 ID:/+peIgnx.net]
>>703
>>703
要素のシーケンス?
IEnumerable<T>は列挙される要素の順序なんて保障しないし
列挙される要素を返すオブジェクトの事だろ

要素でもないしシーケンスでもないじゃないか

732 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 00:33:42.89 ID:1POahPwI.net]
蛇遣いなのでイテラブル/イテレータ

733 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 00:35:00.27 ID:hQ+Ng6ni.net]
マイクロソフトがシーケンスって呼んでるんだから、シーケンスって呼べよ
混乱の元

734 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 00:36:20.71 ID:hQ+Ng6ni.net]
俺何でも知ってる、賢いだろうw
と、話が通じない流れはこうして始まる

735 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 00:39:46.19 ID:1POahPwI.net]
下品な単芝だなぁ

736 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 00:45:36.61 ID:/+peIgnx.net]
>>710
MSの用語で、列挙で返されるものをシーケンスと呼んでいるところはあるけど
IEnumerable<T>実装クラスのことをシーケンスと呼んでるところなんて無いだろ

737 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 00:47:40.91 ID:hQ+Ng6ni.net]
話聞かない回答者がまた暴れだす、死ね

738 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 00:59:29.52 ID:2vpVS7Y/.net]
こんな時間からID真っ赤にしないようにちゃんと変えとくんだゾ

739 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 00:59:45.55 ID:jhfL3S8B.net]
Enumerable.SequenceEqualとかまさしくシーケンスじゃないの?

740 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 01:04:34.29 ID:qdWTE3pv.net]
TupleのitemXって任意名称に変えられないのかね
使いたいけど、itemXが何を指すのか明示し辛くて毎回クラス作る羽目になる



741 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 01:13:37.70 ID:MPuvgpwO.net]
>>717
C# 7.0でそこらへん改善しようという動きはあるが、現状だと無理だな。

742 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 02:15:32.79 ID:J1zmvVNV.net]
>>713
言いたいことは分からんでもないが列挙で返されるものは要素であってシーケンスじゃないよw

ニュアンス的には、イテレーターやクエリ式みたいにIEnumerable<T>を実装したクラスであるかのようにふるまう
何者かのことをシーケンスと呼んでるようにも感じるけど、機能的に等価なんだから同じでしょ。

743 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 02:24:54.15 ID:/+peIgnx.net]
>>716
IEnumerable<T>で返される集合がシーケンス、その構成物が要素
IEnumerable<T>そのものは要素でもシーケンスでもない

まあ仮に、IEnumerable<T>そのものがシーケンスと呼ばれるとしても
IEnumerable<T>実装クラスはシーケンスじゃないし

744 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 02:27:02.08 ID:dpUw/w5G.net]
IEmunerableを実装したクラスはIEnumerableと呼んでるな

だってIEnumerableとして使うわけだし
もと質問者の求める答えとはちょっと違うか・・・

745 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 04:08:25.76 ID:MPuvgpwO.net]
IEmunerable<T> Hoge() みたいなメソッドのサマリーを書くとして、「○○を列挙します。」と説明するのが一番自然だと思う。
「○○のコレクションを返します。」だと、List<T>とか配列のようなものが返されるイメージだし、「○○のシーケンスを…」だと違和感が残る。

746 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 05:06:28.14 ID:FnAxvR+K.net]
全然知らないんですがMoveNextとかはEnumerator実装ですよね?
Enumerableでも使えるのはGetEnumeratorでEnumerator取ってるからですか?

747 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 10:46:36.52 ID:MPuvgpwO.net]
IEnumerable<T>の定義を見てみよう。

748 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 17:51:33.59 ID:jH4gdhBC.net]
ある文字列の中で、2つのキーワードの中にある文字列をLINQを使って抽出したいのですが、やり方が分かりません。
例えば、下の文字列の
「ABCD<a>123</a>EFG」
の中から、<a>と</a>に囲まれた部分だけを取るという事がしたいのです。

749 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 17:55:09.09 ID:DUfHt6hF.net]
バカには無理

750 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 17:55:24.62 ID:h0434h88.net]
なぜLINQでやろうと思った?



751 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 18:08:23.13 ID:Usz+Er1r.net]
縛りプレイもしくは宿題

752 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 18:20:02.61 ID:+wF1gX1q.net]
おまえらどんだけLINQが嫌いなんだよ〜
立て続けに素晴らしい連体感だなww

753 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 18:20:11.07 ID:jH4gdhBC.net]
>>727
最終的にしたいのは、大きめのファイルをFile.ReadLinesを使って読み込み、その中から特定の文字列を取りたいのです。
File.ReadLinesでLINQを使って(正規表現併用でもして)抽出できないのかと、思案してる所です。

754 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 18:23:29.23 ID:87RveuhT.net]
>File.ReadLinesを使って読み込み

まずそこから間違ってる

755 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 18:40:07.71 ID:YDOXgbvn.net]
ABCD<a>12<a>3</a>EF</a>G

みたいなのはどうする?

756 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 18:53:04.03 ID:jH4gdhBC.net]
>>731
巨大なファイル内にある特定の文字を取りたくて、File.ReadLinesを使おうと思ったのです。
ちなみに、これを使う事になったのは↓のサイトの処理速度を見てこれは使えそうと思いました。
ttp://devlights.hatenablog.com/entry/20101116/p2

>>732
<a>〜</a>の組み合わせは今のところ一つだけを想定しています。

757 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 19:05:23.62 ID:MPuvgpwO.net]
巨大のファイルをFile.ReadLinesで読み込むのはちょっと…ってのはおいといて

var urls = File.ReadLines( @"hoge.txt" )
  .Where( x => !string.IsNullOrWhiteSpace( x ) )
  .Select( x => Regex.Match( x , "<a href=\"(?<url>.*?)\".*?>(?<text>.*?)</a>" , RegexOptions.IgnoreCase ).Groups["url"]?.Value )
  .Where( x => !string.IsNullOrWhiteSpace( x ) );

みたいにすれば取り出せるだろうけど

758 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 19:21:42.43 ID:jH4gdhBC.net]
>>734
ソース有難うございます。
まだ、不明な点がありますが調べてみます。

759 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 19:35:10.88 ID:hQ+Ng6ni.net]
別にLINQ嫌いじゃないが、そんな事すんなよなとは思ったw

760 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 19:36:07.54 ID:ZERl/AOH.net]
>>734
ReadLinesは遅延評価だからReadAllLinesとは違って巨大なファイルでも効率いいよ



761 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 19:40:57.26 ID:MPuvgpwO.net]
>>737
すまん、ああ、それと勘違いしてた…

762 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 19:41:01.76 ID:YDOXgbvn.net]
改行をまたいでたらどうすんだってことだろ

763 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 19:46:45.62 ID:MPuvgpwO.net]
そこは想定外ってことで…

764 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 20:06:32.47 ID:je1SKr0C.net]
WindowsFormアプリケーションを勉強中ですが、タブレットPCでもWindowsFormは動作しますかね
実機に触ったことがないのでよくわからんのですが、
Windows8やWindows10あたりが入ってるタブレット端末なら作ったWindowsFormのアプリも
使えますでしょうか?(画面サイズを考慮して作るのは当然として)
それともストアアプリとしてじゃないと入れられなかったりするんでしょうか

765 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 20:15:23.36 ID:MPuvgpwO.net]
>>741
特に問題なく動作可能。
ただ高dpi環境とかで動かすと残念なことになるかも知れないけど

766 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 2 ]
[ここ壊れてます]

767 名前:2:32:02.21 ID:WW0Z/7Lv.net mailto: 無関係だが

スレタイにはちゃんと
(初心者用)
と書かれているよな
[]
[ここ壊れてます]

768 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 23:20:47.01 ID:hQ+Ng6ni.net]
向き不向きは考えた方がいいかもね
LINQで文字列処理とか、Formでモバイル系とか

769 名前:デフォルトの名無しさん mailto:sage [2015/11/11(水) 23:55:46.17 ID:2kBONmlk.net]
データの集まりに対する統一的な操作だからね

770 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 00:25:57.38 ID:b15uPX39.net]
実際にどうか分からんが、件のデータがhtmlだとしたらHtml Agility Packなんか使ったほうがトラブルに巻き込まれずに済むかもしれんね



771 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 02:25:12.08 ID:NUMUMJ+D.net]
LINQは同じようなデータに対する処理を書くものだから正規表現とかやるならLINQである必要性が薄い
たとえばnew{Name, Kokugo, Sansu, Rika, Shakai}みたいなクラスを作れる成績表ファイルだったらFile.ReadLinesでLINQが有効

>>734のやりかたなら普通にforeachしたほうがわかりやすいと思う
var list = new List<string>();
foreach(var line in File.ReadLines( @"hoge.txt" )){
if(!string.IsNullOrWhiteSpace(line)){
var str = Regex.Match(line , "<a href=\"(?<url>.*?)\".*?>(?<text>.*?)</a>" , RegexOptions.IgnoreCase ).Groups["url"]?.Value;
if(!string.IsNullOrWhiteSpace(str)) list.Add(str);
}
}

772 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 07:56:05.65 ID:Los5n9AY.net]
求めてるのは分かりやすさではなく自己満足だ
余計な世話を働くな

773 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 07:58:25.66 ID:FwVQMCtV.net]
どう見てもLINQの方が見易い

774 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 08:03:54.52 ID:dubRMvMU.net]
そうだな
このケースは実質的には
行の集合→フィルタ→変換→フィルタ→結果の集合
という要素ごとに独立な集合操作なのでLINQを使うのはおかしくはない

775 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 09:27:42.54 ID:b15uPX39.net]
htmlのタグは行をまたぐことも多いから、行の集合体として処理するとエライ事になるよ

776 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 17:10:09.52 ID:2y0wDvFa.net]
>>747
foreach使ったら遅延の意味ないし
さらに新たにlist作ってるのが古臭い

777 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 18:06:53.36 ID:sljIQlRZ.net]
>foreach使ったら遅延の意味ないし


778 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 19:38:54.77 ID:Ky5LrglX.net]
今時2.0のレガシーなソースコードを流用しないといけないんだけど、XML Webサービスと型付データセットでこれををEFとEDMに置き換えることによるデメリットって何かある?
ちなみに同一アセンブリ内からしか呼び出ししてないのになぜかASP.NETでWeb参照作ってSQL Serverと接続させてる元開発者の意図が読み取れないんだけど・・・

779 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 19:45:39.77 ID:EC9THrMO.net]
>>754
今となってはEFだからとコードファーストにする必要も無く、既存のDBから作れるし別に問題ないんじゃね
動作環境を4.5.2にしないと来年早々にサポートが切れることぐらいか

780 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 20:05:38.85 ID:yYqeH5aP.net]
わざわざList<T>なんぞ作らず、yield returnにしておけばいい。
それならforeach使おうが、遅延評価されるやろ。



781 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 20:18:02.90 ID:sljIQlRZ.net]
??

782 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 20:58:20.79 ID:VAIEdV8u.net]
脳に障害でも抱えてんのかお前

783 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 21:23:02.20 ID:cKAT5bUn.net]
すみません。
すぐ片付けますので。

784 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 22:04:08.00 ID:Ky5LrglX.net]
>>755
いやどっちみち既存DB使うからデータベースファーストなんだけど、SqlCommandじゃなくてLINQ to Entity使いたいからEFなんだよ

785 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 22:07:54.82 ID:EC9THrMO.net]
>>760
何が言いたいのかわらかないけど、使いたいなら使えとしか・・・

786 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 22:14:13.84 ID: ]
[ここ壊れてます]

787 名前:VAIEdV8u.net mailto: ファイト一発 []
[ここ壊れてます]

788 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 22:27:48.52 ID:AjxvVfcS.net]
>>760
今なら既存DBからコードファーストというオプションが存在するんだぜ

LINQ使いたいだけならLINQ to DataSetって方法もあるぞ
既存コードの量にもよるけど、既存コード全部修正してまでEF導入するほどのメリットがあるのか
あるいはEFとADO.NET直接や型付きデータセットを混在させるのは容認されるのか

789 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 22:38:34.20 ID:2y0wDvFa.net]
>>753
本当に分からないの?

すべての要素を実体化させてるからなんだけどね。

790 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 23:05:26.00 ID:+tTEt6jT.net]
>>764
ごめん
俺もわからん
解説plz



791 名前:デフォルトの名無しさん [2015/11/12(木) 23:08:48.25 ID:qQwabUEl.net]
お世話になります。
非同期処理でUIにアクセスするさいにBeginInvokeを使っているのですが
回転数が少なく条件にマッチしない場合BeginInvokeの方が先に終わってしまうのか
labelの方は100000と書いてあるのに終了のメッセージボックスがしばらくしないと出ない感じに
なってしまいます。。


Taskスタートのつもり
{
for (j = 0; j <10000; j++)
{
メソッド1(j);
bool flg=メソッド2(j);
if (flg) this.Invoke(new Action(() => HITLabel.Text = "hiT"));
this.BeginInvoke(new Action(() =>進行Label.Text=j+1.ToString()));//
}

//ループ終了 
});

MessageBox.Show("完了せり");

とこんな感じでかなりあれなんですが・・・
Invokeにすれば同期できるんですが終了待ちする関係で
時間が掛かってしまい3秒くらい追加になってしまうようです。
BeginInvokeを使いループ終了と同期させる方法がないでしょうか?
200万ぐらいから同期するみたいなんですが。

792 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 23:13:38.94 ID:Dz+qxRLQ.net]
>>764
遅延評価させる意味というか目的を教えてほしい。

793 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 23:19:26.88 ID:dubRMvMU.net]
>>766
それjが一つだから進行Label.Textは最初から全部10001になるだろ
BeginInvokeは引数を渡せるオーバーロードがあるから進捗情報はそっちで渡せ
jをループ内で宣言し直す方法もあるけど、
コンテキストをまたがって変数を共有するのはトラブルの元なので極力避けることをお勧めする

794 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 23:29:31.65 ID:qQwabUEl.net]
>>768さん

アドバイスありがとうございます。
jの件仰るとおりでした

それと肝心のBeginInvokeですがつまりActionではなく
デリゲードを生成してそちらに引数を渡せば解決するということでしょうか?

795 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 23:35:00.45 ID:yYqeH5aP.net]
そもそも、今の時代にBeginInvokeなんか使ってるのが間違い。
Task.、async / awaitを使うべき。

796 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 23:45:09.01 ID:qQwabUEl.net]
>>770さん
仰る通りだと思うんですがasync/awaitは4.5?でしたか。環境が駄目でorz

797 名前:デフォルトの名無しさん mailto:sage [2015/11/12(木) 23:52:28.74 ID:FwVQMCtV.net]
foreach使ったらダメとか思い込んでる奴は恐ろしいな
遅延評価は最後のforeachのためだぞ

798 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 00:05:42.71 ID:0XMaJRAY.net]
LINQの話が自演荒らし臭くなってきた

799 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 01:32:54.47 ID:mVyjF6P7.net]
Linqで作成したqueryをforeachにかけるならいいけどね

800 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 03:14:28.15 ID:fOj/PJch.net]
もしファイルが巨大ならスレッドブロックしちゃうし、listに追加したらメモリ使い果たしちゃう
状況にもよるけど、別スレッドでファイルとかに逐次書き出すとかが理想



801 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 07:05:08.20 ID:iH7KAiTO.net]
>>771
blog.xin

802 名前:9le.net/entry/2012/12/26/125214

4.0でも使えないわけじゃない
[]
[ここ壊れてます]

803 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 21:50:19.26 ID:WHtd9CIG.net]
>>768さん
private delegate void デリゲート(int n);
private void 進行表示なのよさ(int n)
{
進行Label.Text=n.ToString()));//
}

デリゲート デリゲート進行なのよメソッド= new デリゲート(進行表示なのよさ);
this.BeginInvoke(デリゲート進行なのよメソッド, new object[] { j });
と渡しましたけど無事に死亡確認しました。orz
変らず・・・・

なんか5万でやったら処理が間に合わないのかデッドロック


>>776さん

あっライブラリーを別にインストールしてやる感じですか。
ありがとうございます。 

804 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 21:56:43.98 ID:qRfCc0Iv.net]
なんでわざわざdelegate宣言してんの?
特別、ref とか outを使いたいとかじゃない限り、Action<T>、Func<T> を使うべき。

805 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 22:05:31.10 ID:WHtd9CIG.net]
>>778さん

あっ宣言しなくても省略できるんですか・・
void Action<T>(T obj)・・これは知らなかったです・すいません。
Tにメソッドを入れて引数にT objを指定する感じですかな。
どうにも疎くて;;

806 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 22:11:25.68 ID:v46Ke5nq.net]
死ねアッチョンブリケ

807 名前:デフォルトの名無しさん mailto:sage [2015/11/13(金) 22:16:22.98 ID:qRfCc0Iv.net]
.NET 4.0ならBeginInvokeとかInvokeとか使わずTaskを使うといい。

Task.Factory.StartNew( () =>
{
    // 別スレッド
    Thread.Sleep( 3000 ); // 重い処理のつもり
    return 1000;
} ).ContinueWith( task =>
{
    // UIスレッド
    this.label.Text = task.Result.ToString();
} , TaskScheduler.FromCurrentSynchronizationContext() );

808 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 00:12:23.08 ID:PWAfQw+v.net]
>>781
非UIスレッド側からUIスレッドにイベントを通知したい、なんてケースもあるので万能じゃないけどね。

809 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 00:28:17.73 ID:zC8KxVmn.net]
>>782
そういうのは、Rx使ってる。

810 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 00:45:14.09 ID:JMgFPTs6.net]
.NET MVCで画面作るときに
viewに複雑のユーザー定義クラスを渡す時ってカスタムbinderつくるしかない??

例えば検索フォームと一覧で構成される画面で
検索フォームmodelと一覧modelをバインディングするみたいな。



811 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 01:45:16.57 ID:J/xjBQ6p.net]
何をわけの分からんことを

class 俺モデル
{
public 検索フォームmodel M1;
public 一覧model M2;
}

これをモデルとして渡せばOK

812 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 02:49:03.10 ID:JMgFPTs6.net]
>>785
view側で

@TextBoxFor(m => m.M1.Unko)
@TextBoxFor(m => m.M2.Chinko)

みたいなのをformで送ったが、
ActionメソッドをIndex(俺モデル myModel)
としても、値とってこれないんだよね

813 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 02:56:01.24 ID:T0Fy32Ow.net]
>>781の兄者・・

駄目でした;;
既にtaskは使っていて
var task1 = Task.Factory.StartNew(() =>
これの終了に別のタスクで繋いで終了表示をしてるんですが
781の兄者のやり方のとおりに子タスクを設定してみたんです。
したら親タスクのつなぎタスクに繋がらないときがあるみたいで;;
なんで繋がなくなる時がある上に終了してるのに
終了ウィンドウがしばらくしないと出ないのか・・
きっと妖怪のせい・・

814 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 11:18:55.84 ID:10oOQI9U.net]
まず日本語が、正しく以下略

815 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 13:23:53.12 ID:m53r0/yX.net]
こういうのを見ているとTaskチェインよりもawaitの方がスマートだというのがはっきり分かるな

816 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 16:57:33.34 ID:g6rNXfjz.net]
>>786だけど
getter setterつけたらいけたわ。

817 名前:デフォルトの名無しさん [2015/11/14(土) 18:56:20.98 ID:OxpghztZ.net]
今unityでゲームを作ってるんですがc#のクラスの配列について質問です
こういうコードがあるとします
public class Aa{
int i;
string b;
public Aa(int iH,string bH){
i=iH;
b=bH;
}
}
Aa [] aa=new Aa[]{
new Aa(10,"aaa"),
new Aa(20,"bbb")
};
これでコンパイルは通るのですがこの後半に書かれたクラスの配列の初期化が
なんとも気持ち悪くて仕方がありません
これから何百行もクラスの初期化のコードを書くつもりなのでnewとかAaとかが無意味に並んでる辺りが
非常に醜いと思います
もっと初期化を簡略化する書き方はないでしょうか?

818 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 19:13:53.28 ID:nPG81Nq1.net]
設定ファイルを別に用意して for ループかなにかでインスタンス作るのはダメなん?

819 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 19:15:20.30 ID:Ldro2YxR.net]
>>791
ファイルに出せ

820 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 19:16:41.03 ID:x0D1OM5m.net]
>>791
それが無駄だと全然思わないんだけど、

static Aa[] ToAaArray(params string[] args){...}

みたいなメソッドでも用意するとか。



821 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 19:21:51.68 ID:0hbObyK2.net]
ゲーム作ってますと何百個のクラス作ってますがどうしたらいいでしょうか
はワンセットになりつつある

822 名前:デフォルトの名無しさん [2015/11/14(土) 19:22:29.23 ID:OxpghztZ.net]
>>792
>>793
ファイルに出すというのはテキストファイルを別に作って読み込むという方法でしょうか?
それも考えたんですけどそれだとテキストファイルを作る時引数の入力補完が効かなくなって
かえって間違えやすくなると思うんですけど

>>794
入力補完を利かすため引数のデータをデータ型通りの形で並べたいんですけどどうしたらいいですかね

823 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 19:35:41.52 ID:zC8KxVmn.net]
>>791

var aa = new [] { new Aa( 10 , "aaa" ) , new Aa( 20 , "bbb" ) };

824 名前:デフォルトの名無しさん [2015/11/14(土) 19:39:17.01 ID:OxpghztZ.net]
>>797
外側減らしたって意味無いすよw
中が圧倒的に多いんだから

825 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 19:44:59.12 ID:zC8KxVmn.net]
外部にテキストファイル、例えばcsvなんかを用意して読み込むようにするか、
もしくは、partial class を作って別ファイルにメソッドを隔離しておくか。

826 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 20:08:15.99 ID:nPG81Nq1.net]
>>796
入力補完?
入力候補が決まってるなら、EXCEL でも使ってセルの入力規則のリストでも利用すればすむ事じゃん。
こっちの方が列で管理出来るから引数の順番とか間違えなくて(その意味では)便利だろ。

別にお前に限ったことじゃないけど、条件の後出しはよせ。正直ムカつく。

827 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 20:10:22.93 ID:FGqqqIfB.net]
>>798

テキストファイル読み込んで作るか、もしくはnewをいっぱい書くのが普通だと思うけど
それでも無理やり減らそうと考えるならこれかな。

var aa = new List<Aa>();
var elements1 = new[] { 10, 20, 30 };
var elements2 = new[] { "aaa", "bbb", "ccc" };
for(int i = 0; i < elements1.Length; i++)
{
  aa.Add(new Aa(elements1[i], elements2[i]));
}

これだとタプルを分解して書かないといけないから不満が残るけど
(10, "aaa")のような形でインスタンスを作れない以上どうしようもない気がする。
最近C#触っていないからもっといい方法があるかもしれないが。

828 名前:デフォルトの名無しさん [2015/11/14(土) 20:18:02.62 ID:OxpghztZ.net]
>>800
基本的にunityのmonodevelopで完結させたいんだよね
monodevelopは使い方も知ってるし
>>801
それだと例えば1番目なら1番目の項目の書いてる場所がバラバラになってしまって
とても管理出来そうにない

みなさんありがとうございました
自分が今まで致命的な勘違いをしてた訳じゃないとわかっただけでも収穫でした
newとクラス名連打で作りたいと思います

829 名前:デフォルトの名無しさん [2015/11/14(土) 20:23:51.44 ID:vsCbl3R/.net]
テキストファイル作る時の引数って意味がわからん。
オブジェクト作成時に値チェックかけて、
整合性が保証されてる状態で書き出せばいいだろ。

830 名前:デフォルトの名無しさん [2015/11/14(土) 20:27:37.98 ID:OxpghztZ.net]
>>803
それだと実行させなきゃエラーを出せない
unityのmonodevelopは初期化の時引数の型が間違ってたら書いたその場でインフォメーションしてくれる



831 名前:デフォルトの名無しさん mailto:sage [2015/11/14(土) 20:57:41.24 ID:Qc99f8i6.net]
>>804
単体テスト書けば良いんじゃないの。書いたその場で、とは行かないが。

832 名前:デフォルトの名無しさん [2015/11/14(土) 21:00:39.59 ID:vsCbl3R/.net]
>>804
モデルのオブジェクト(メンバの型)を経由するのにどう引数間違える可能性あるんだよ?

833 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 00:43:58.51 ID:PNJd8cmY.net]
>>791
var bullets=Enumerable.Range(0,100).Select(i=> new {Id=i,Num=10,Str="100" });

834 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 01:30:33.23 ID:8pwk8L+v.net]
it.srad.jp/story/15/11/13/210208/
混迷極まってるな、MS工作員にはモバイル用は別OSにするって発想はでないのかね?
別に、コアコードは変わる訳じゃなかろうに、上っ面の部分だけモバイル向きに作り替えて
アップデートのタイミングをそれぞれに調整すれば良いだけ
モバイルで流行らないのは、単にWindows8に商品力が無いだけだ
デスクトップ向きはWindows7に戻しちまえばいいのに
Windows10とか誰も欲しがらないだろ・・・

835 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 01:31:54.15 ID:PNJd8cmY.net]
static void Main(string[] args){
 //AaValues.txt
 //10,aaa
 //20,bbb
 AaFct(File.ReadLines("AaValues.txt").Select(l=>l.Split(',')));}

private static void AaFct(IEnumerable<string[]> values){
 using (var f = File.AppendText("Aa.cs")){
  foreach (var v in values){
   f.WriteLine($"new Aa({v[0]},\"{v[1]})\",");}}}

836 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 02:56:43.32 ID:m6nrC5L1.net]
やっぱりLINQ最高

837 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 06:35:48.77 ID:Ro5/nML1.net]
Formをある程度デザインし終わった時に、ウィンドウそのもののフォントをUIゴシックからメイリオに切り替えると
サイズや配置が変わって一気に崩れるんだけどなんで?
そもそも個別のコントロールにフォントを設定していたらウィンドウのフォントって触る必要がないもの?
みなさんフォントは何使ってるんだろう モリサワとか入れてるんだろうか

838 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 07:24:16.58 ID:m7boHCrI.net]
テキストの幅がちょっと変わっただけで崩れるようなデリケートなデザインを作らないのが基本
業務アプリとかでクソ細かい要求を受け入れなきゃいけないなら全部MS Pゴシック

839 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 07:33:24.90 ID:wjlQu+Ap.net]
>>811
まずFontはアンビエントプロパティ。特に設定してない子コントロールは親のフォントを使う
よってFormのフォント変えると、子コントロールのフォントも変わる。
さらにFormのAutoScaleModeはFontがデフォ。
フォントによってAutoScaleDimentionの値が変わる
よって各コントロールの大きさが変わる。以上。

AutoScaleModeはDPIにしとこう

840 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 13:44:16.69 ID:Ro5/nML1.net]
>>813
具体的なご指導に感謝いたします
独学でやってるとなかなかそうしたものまで及ば



841 名前:ネいので本とありがたい []
[ここ壊れてます]

842 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 14:45:22.59 ID:s1AdXoMj.net]
dbプログラミングで検索するとentity framreorkと言うのが出て来るがこれは何よ?使わ無くてもいいのか?使うといいの?

843 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 14:54:00.71 ID:giTGvBPC.net]
>>815
DBを扱うためのフレームワークの一つ。

何をどれぐらいの規模で作りたいかによる。
小規模なのは、適当なDBで十分、FEは、機能が多すぎてちょっとしたものに適応するには重すぎるだろう。
サーバーを必要としないようなクライアントアプリならSQLiteあたり使っておけばいい。

ORMがやりたいならDapperあたり使えばいい。

844 名前:デフォルトの名無しさん [2015/11/15(日) 15:00:11.33 ID:19LeITHM.net]
質問です
enum Syurui{
a,b,c
}
string moji=“a”;
Syurui syurui=/この部分

この部分と書いたところに変数mojiの中身を列挙型のSyurui.aに変換して
syuruiに入れる処理はどう書いたらいいでしょうか?

845 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 15:04:30.20 ID:giTGvBPC.net]
>>817
Syurui hoge = (Syurui)Enum.Parse( typeof( Syurui ) , moji );
もしくは、

Syurui hoge;
Enum.TryParse<Syurui>( moji , out hoge );

846 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 15:04:59.41 ID:s1AdXoMj.net]
>>816
詳しい説明有難うございました。
windows vpsサーバーにmysqlいれていてdbプログラミングの勉強中です。月間ページビュー1000万くらいの規模のdbアプリを目指したいです。そういう場合はEFが良いですか?

847 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 15:05:44.14 ID:XKYu6RGQ.net]
Enum.Parseを使う

848 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 15:06:56.73 ID:giTGvBPC.net]
>>819
その規模になると、SQLiteとかじゃ耐えれないだろうから、EF使うと良いと思う。

849 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 15:11:31.11 ID:s1AdXoMj.net]
>>821
有難うございました。
早速やってみます。1000万pv達成出来たら報告します。

850 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 15:12:13.39 ID:SModPTsN.net]
>>819
アクセス数よりDBの構造の規模で。

どの程度学習してるか、これから学習するのかわからないけど
とりあえず簡単なものを両方のやり方で試してみるのがいいと思うよ。



851 名前:デフォルトの名無しさん [2015/11/15(日) 15:26:03.20 ID:19LeITHM.net]
>>818
できました〜
ありがとうございます
ちゃんと列挙型の変数に格納されて違う値入れたらエラーも出ました

852 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 16:06:04.89 ID:bBffLHE3.net]
Dapper使うとして、SQL文字列を組み立てるじゃん。

stringbuilderで組み立てていったとき、
なんちゃらフラグのときは〜みたいな条件がたくさんあると

if,elseとかのネストがきったなくなるんだけど、どうしたらいいんだろ?

853 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 16:38:51.59 ID:kqjPbh/t.net]
SQLをシンプルにして、LINQでごにょごにょする。
かなり綺麗になる。でも、巨大なデータをメモリ上に置くことになるので
これが最適かどうかはわからない。
どうしたらいいんだろう…。

854 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 16:44:09.23 ID:hXzxGHNH.net]
遅延ローディングできないんですかね

855 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 17:06:33.10 ID:kqjPbh/t.net]
ユーザー情報がID、名前、年齢、パスワード、メールアドレスで管理されているとする。
IDが4バイト、名前が255バイト、年齢1バイト、パスワード255バイト、メールアドレス255バイト
だとすると、1レコードで770バイト。1万人を管理するとして、7,700,000バイトつまり7MB。
メモリ数が4GBだとすると、1/600くらいをメモリが占めることになる。思ったより巨大。

例えば年齢が25歳以下のユーザーだけを取り出したいとする。
そのために、.Where(u => u.age <= 25) というLINQ式を追加する。
7MBのデータを一つずつ見ていかなければならないとすると、一つのメソッドでどれくらいの時間がかかるだろうか?


856 名前:完全に適当だが、1レコードで100万分の1秒くらいと予想。
1万人で0.01秒。つまりメソッド一つで0.01秒しかかからない。
メモリもすぐに解放される。1/600と聞くと意外と大きな割合のように思えるが、存在しているのはほんの0.01秒である。

さて、メソッドが連なっている場合はどうなるか。
一つ目のメソッドでWbereメソッドを使っているとすると、二つ目以降のメソッドでは、処理対象のレコードが少なくなる。
それは例えば1万→5000といったように。
すると当然、処理時間も減少する。上の例では0.005秒と半分になる。

対象レコード数が1万程度なら何も問題はなさそうだ。
だから僕は、効率よりもソースコードの綺麗さを取ることにする。

これが100万行とかになると、1メソッドで1秒かかることになる。流石にそれはまずいので、
SQL分にWHERE句を追加して、RDBMSに条件の絞り込みの処理を任せる。

if,elseなどを使う必要がある場合はLINQを、最初から決まっている絞り込み条件の場合はそのままWHERE句を
使用する。そうすることにより、早さを維持しながらソースコードを綺麗にすることができる。
[]
[ここ壊れてます]

857 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 17:24:45.76 ID:SModPTsN.net]
まあif文とこ別関数にしてメソッドチェーンみたいにしてもいいしね
DBは別のサーバにあることが多いから通信も考慮しないとね

858 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 17:25:22.41 ID:giTGvBPC.net]
100万件レコードがあったとして、何も100万件全部読み出す必要はないし、そんなことするなら設計を見直すべきだろう。
WHERE句とLIMIT句を指定してレコード数を制限して必要な分だけ読み込めばいい。

859 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 19:36:39.93 ID:CvRB/UR5.net]
メソッドチェーンの使い所ってどんな時?

860 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 19:55:51.71 ID:5wcT3tcL.net]
>>831
使いたい時に使えばいい
LINQがいい例

>>819
本当にパフォーマンスが必要ならEFなんてやめとけ
EFは文字列でSQLを作りたくない時に導入するもの



861 名前:デフォルトの名無しさん mailto:sage [2015/11/15(日) 20:12:14.42 ID:s1AdXoMj.net]
>>832
そういう事ですか!
文字列で
select 文を書く普通のやり方で十分なのでef使うのは中止します。

862 名前:デフォルトの名無しさん [2015/11/16(月) 12:51:54.53 ID:Ffgt4uY8.net]
質問です
文字列を変数名として扱う方法はありませんでしょうか?

int a=0;
string amoji=“a”;
kansu(ref ここ);

void kansu(ref int a){
Debug.Log(a);
}

「ここ」と書いた場所にstring型の変数amojiの内容である”a”から変数aを用いる
ためのコードの書き方はどうしたらいいでしょうか
変数のリストをテキストファイルで管理しようと思っているのでこういうのが
必要になりました

863 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 12:55:17.48 ID:AqzFwWr1.net]
まっ、その気になればやってやれん事はないのだが、やめろ

864 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 12:58:11.19 ID:Eod8iMW6.net]
>>834
これじゃダメ?
int Kansu(string amoji){
  return "a"→aの処理;
}

テキストファイルから読み込んで変数リストの管理を行うなら別のやり方になりそうだけど

865 名前:デフォルトの名無しさん [2015/11/16(月) 13:01:18.51 ID:Ffgt4uY8.net]
>>836
その「"a"→aの処理」っていうのはどうやるんでしょうかね?

866 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 13:05:25.95 ID:mRFC3bAE.net]
何故そんなことをしたいのかわからないが…

やめとけ。

ろくなことにならないからw

867 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 13:14:01.22 ID:6H4dK92G.net]
>>834
javascriptなら出来るんじゃないか?

868 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 13:29:25.05 ID:RuGtzWomJ]
mapを使えばできる

869 名前:デフォルトの名無しさん [2015/11/16(月) 13:16:03.85 ID:Ffgt4uY8.net]
>>838
そんなダメですかw
誰もやってない方法ならやめときます
>>839
c#では一般的なやり方じゃないようですね
別の方法を考えます

870 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 13:35:59.43 ID:htc6fDTL.net]
C#関係なしに一般的ではないと



871 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 13:36:29.71 ID:vMsjPxDw.net]
ev

872 名前:alが使いたいという話でもないのか []
[ここ壊れてます]

873 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 13:50:11.34 ID:p+PVyYp5.net]
ダーティーハックが尊ばれる下痢便言語ではよくある手だろ

874 名前:デフォルトの名無しさん [2015/11/16(月) 14:39:35.24 ID:Ffgt4uY8.net]
じゃあこういうのはどうですか?
public delegate void Aa();
Aa a;
string kansuu=“Bb”;
public void Bb(){
Debug.Log(“Bb”);
}
a=//ここにaに文字列kansuuの中身の”Bb”を関数Bbに変換するコードを入れる
a();//ここでBb()を呼び出す

875 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 14:49:16.58 ID:mRFC3bAE.net]
やろうとしていることが根本的にズレているんだよ

876 名前:デフォルトの名無しさん [2015/11/16(月) 14:52:29.58 ID:Ffgt4uY8.net]
>>846
要するに文字列から関数や変数にアクセスしたいって事なんですけど
そんなにおかしいですか
文字列から直接アクセスできないとなれば変数や関数を列挙型でリストアップして
使うときはswitch文で分岐なんていう情けないコードにしかならないと思うのですが

877 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 15:01:52.67 ID:mRFC3bAE.net]
private readonly Dictionary<string,Func<object>> values = new Dictionary<string,Func<object>>();

Hoge(){
  string x = 100;
  this.values[nameof(x)] = () = x;

  int ans = this.GetValue<int>( nameof( x ) ) * 2;
  Console.WriteLine( ans );
}

T GetValue<T>( string name ) => (T)this.values[name]?.Invoke();

みたいなことをやれば辛うじてできなくはないが、保守性も効率も最悪なので普通はやらない。

878 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 15:03:36.05 ID:vMsjPxDw.net]
Dictionary に入れといて呼ぶとかでいいじゃん、、

まあReflection使えばできる
public static void Bb()
{
Debug.WriteLine("Bb");
}
void test()
{
Type thisType = GetType();
string kansuu = "Bb";
MethodInfo mi = thisType.GetMethod(kansuu);
mi.Invoke(null, null);
}
とか、、、delegateでもいけるかな

879 名前:デフォルトの名無しさん [2015/11/16(月) 15:13:31.76 ID:Ffgt4uY8.net]
>>848
>>849
Invokeというメソッドを今初めて知ってよくわからないんですけど
どうもかなり遅いらしいですね
ゲームを作っているのでそれでは都合が悪いです
やっぱりずらずらとリストアップする方法でやりたいと思います
ありがとうございました

880 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 15:14:46.20 ID:Eod8iMW6.net]
これID:OxpghztZだろw



881 名前:デフォルトの名無しさん [2015/11/16(月) 15:21:13.63 ID:Ffgt4uY8.net]
>>851
バレちゃったw
結局テキストファイルを読み込んでやる事にしたんです
それでテキストファイルに変数名や関数名を書きたいなぁと思って質問しました

882 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 15:39:44.62 ID:mRFC3bAE.net]
ActionとかFuncのInvoke自体は、普通のデリゲートコールなので遅くない。

Action a => () => { } ;
a(); と a.Invoke() は、同じことをやっている。
null伝播使うとき、 ?.() という書き方ができないので、?.Invoke() にしてあるだけだ。
もちろん、普通のメソッドに比べれば、インライン化されないなどの僅かな差はあるだろうが、気にするほどではない。

遅いのは、>>849がやってるようなリフレクションだ。
こいつは、桁違いで遅い。ExpressionTreeで実行時にデリゲートを構築してやれば、速度の問題はある程度解消できるだろう。
あとは細かいところで変数のキャプチャ、ボックス化が生じてパフォーマンス低下につながることになる。

883 名前:デフォルトの名無しさん [2015/11/16(月) 15:46:42.66 ID:Ffgt4uY8.net]
>>853
正直初心者なのでその区別もつかないです
dictionaryとかならわかる範囲なのでそれでも使おうかなと思ってます
多少コードが冗

884 名前:長になっても []
[ここ壊れてます]

885 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 16:12:09.04 ID:4iBaA+8B.net]
関数と文字列が予め決まっているなら、switch文で分岐して関数呼ぶのが早いだろうが

886 名前:デフォルトの名無しさん [2015/11/16(月) 16:42:18.72 ID:Ffgt4uY8.net]
>>855
やっぱりそれが一般的なんですかね
別のゲームにも再利用しやすい仕組みにできないかなと色気を出してしまったのも
今回こういう質問をした理由なんですけども

887 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 16:46:44.96 ID:mRFC3bAE.net]
よくわかっていないうちは、今後再利用しようなんてやめとけ。。
再利用しようとしたときには、(誰だ、この糞設計したのは!糞コード書いたやつ死ねよ?…自分か…)ってなってゴミと化すだけだから。

888 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 18:04:07.44 ID:/wMXw7Lm.net]
型が決まってて値取り出したいだけならシリアライズで十分とも思うけども。

889 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 18:40:32.23 ID:LDaVIeza.net]
>>858
「変数のリストをテキストファイルで管理しようと思っている」って>>834で書いてるから、変数の値は保存してないんじゃねえの?
全く意味不明だけど

890 名前:デフォルトの名無しさん [2015/11/16(月) 19:19:50.00 ID:Ffgt4uY8.net]
>>858
シリアライズとはどういう機能なんでしょうか?
ググってもイマイチわからなかったのでこの件とどういう関係があるのか教えてもらえませんでしょうか



891 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 19:19:59.69 ID:/wMXw7Lm.net]
>>859
あ、そうか、外してたな

892 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 19:37:02.75 ID:mRFC3bAE.net]
シリアライズというか、設定値なりパラメータをソースコードじゃなく外部で管理したいだけなら、XMLとかJSONとかで読み込めば良いだけだろう。

893 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 19:38:00.43 ID:diuJbJ+U.net]
>>860
シリアライズはオブジェクトを通信で送るのに使う
ローカルファイルへの保存に使うのはドツボにはまるのでやってはいけない
XmlSerializerみたいなスキーマありきの奴ならいいけどね

894 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 19:42:53.32 ID:mRFC3bAE.net]
>>863
設定データの保存用にBinaryFormatter使ってたら、古いデータとの互換性取れなくなってドツボにはまったことあるわ。

895 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 20:34:38.26 ID:HIZPDz5u.net]
クソみたいなゲーム作ってないで宿題やってクソして寝ろ

896 名前:デフォルトの名無しさん [2015/11/16(月) 20:45:10.02 ID:Ffgt4uY8.net]
>>865
うるせーなw
大きなお世話だw

897 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 22:21:51.30 ID:bfEVOxks.net]
>>ID:Ffgt4uY8
こういう人って必要な分だけネットで覚えたから知識に穴だらけ
基礎もままならない状態だから、ある目的のためにダメな手段を
思いつきでやろうとするから>>834のようなことになる
newを100回書こうとしたりね
目的を自分の中で明確にして質問すればいいのにな
ここにいる人も気づいているのに
からかい半分に間違った手段のために律儀に答えようとしてるし
みんなもわかっているんだろ、本当に彼がしたいことを
焦る気持ちはわかるけど、まずは基礎だよ
基礎がしっかりしてないと、コピパーになるよ

898 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 22:27:42.07 ID:LDaVIeza.net]
変数のリストをテキストファイルで管理ってのが理解不能すぎて解決策が出せないんだよな
変数名しか管理しないんならソースコードに直接書けばいいとしか思えないんだけど、多分深い理由があるんだろうからテキストファイルから変数を取得する方法を教えるしかない

899 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 22:41:27.09 ID:p+PVyYp5.net]
別に間違ってる奴は間違ってるまま突っ走ってくれて構わんだろ
垂れ流しのウンコを擦り付けてくるなよってだけ

900 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 22:43:40.13 ID:p+PVyYp5.net]
DSLを設計するのが好きな奴と関わりあいになりたくない



901 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 22:48:59.73 ID:Eod8iMW6.net]
皆律儀に構ってやるから居ついちゃうんだよな

902 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 22:50:19.96 ID:mRFC3bAE.net]
たぶん設計とか何も考えてないと思う…
おそらく、変数というものを最近知ったんだろう。
だが、クラスを自分で定義したり、Dictionaryを使ったりする方法は知らないと思われる。

903 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 23:01:20.17 ID:AqzFwWr1.net]
どうしても必要不可欠になったとか
これができなきゃプロジェクト崩壊、ヤバイ死ぬとか
そういう話なら、答えてやらんでもないがね >文字列を変数名
最初から使用を前提にするとか有り得ない

904 名前:デフォルトの名無しさん [2015/11/16(月) 23:41:45.35 ID:Ffgt4uY8.net]
ボロクソ言ってくれるよなぁw
俺のやりたい事はアドベンチャーゲームに近いんだけどゲームを「シナリオ単位」
に分けてそのシナリオを遷移させる事で
ゲームを進めるという仕組みにしたかったんだよ
で、最初はシナリオクラスをたくさんnewして並べようと思ったんだけどそれはやめて
テキストファイルから読み込んでやる事にした
それでそのシナリオの中には○○関数を呼び出したいとか○○変数を使いたいみたいなのも
含まれる
それでテキストファイルの中にaaaaと書いてあって
それを読みだしてaaaa変数が使えたら便利なんじゃないか?
というのが今回の質問の趣旨

905 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 23:46:31.65 ID:diuJbJ+U.net]
「シナリオプレイヤーを作る」と割り切って考えてシナリオとプレイヤーの仕様を明確にすれば、
変数を文字列で選ぶようなメタな仕組みは必要ないと分かるはず
初心者はそこをごっちゃにするからおかしくなる

906 名前:デフォルトの名無しさん mailto:sage [2015/11/16(月) 23:59:23.74 ID:bfEVOxks.net]
>>874
わかるよーADV用のスクリプト言語開発したいんでしょ
吉里吉里みたいなもんでしょ
UnityだとJokerScriptというのがあるみたいだね
自作のゲーム用フレームワークを作って開発効率あげようってことでしょ
ゲーム制作は専門外なのでぼくは答えられませんけど
がんばってね!

907 名前:デフォルトの名無しさん [2015/11/17(火) 00:06:19.08 ID:R+1w9ien.net]
>>875
設計がおかしいというのは薄々わかってました
今回おかしいと言われてようやく明確な自覚を持てました
それがわかっただけで有意義な質問だったと思います
ありがとうございました
>>876
そういう事なんですよ
スクリプトというほど高等な物じゃなくて簡易的なものなんですけど

908 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 00:10:46.96 ID:0HyN1ztj.net]
はじめからどういう目的があるのかを質問に含めないから厄介なことになるんだ。
BASICみたいな感じで簡易スクリプト言語を組んでしまえばいい。

MSG
何かのメッセージ
MSGEND

SET A=100
GET B,A

みたいなやつを決めて、C#側での変数管理は、Dictionary<string,object> values;のようなディクショナリでまとめておいて、
SET命令が出てきたら、values["A"] = 100。
GET B,Aなら、values["B"] = values["A"] って感じで実行するように組んでおけばいい。

909 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 00:16:26.67 ID:WTj4x1Uo.net]
>>877
アスペなのかもしれないから教えておくけど、875はそういうスクリプトを使えってことを嫌味を込めて言ってるんだと思うぞ
車輪の再発明は無駄だからな

910 名前:デフォルトの名無しさん [2015/11/17(火) 00:19:58.23 ID:R+1w9ien.net]
>>878
その考えで根本的に作り直したいと思います
まだ準備段階なのでやり直しが効きますので
>>879
自分で作るというのはすでに決まってます
だから小規模でまとめようと思ってます



911 名前:デフォルトの名無しさん [2015/11/17(火) 00:37:33.94 ID:3fiu8XQQ.net]
ハッキングして遠隔操作みたいのをしてみたいんですけど、どうすればいいんですか?
学校でC言語とJavaは習いました。

912 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 01:07:53.71 ID:lYlDUfoh.net]
まず自殺します

913 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 01:09:58.66 ID:+UlWRHgW.net]
>>874
C#でやるべき方法じゃないと思う
動的言語rubyとかでやったほうがたぶん早い

914 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 01:12:35.98 ID:MdYEWsJu.net]
アスペに「アスペなのかもしれないから教えておくけど」と言ったところで
アスペなんだから伝わるわけないわな
無駄無駄ァ

915 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 01:13:29.87 ID:slq8dUH/.net]
>>880
できたよ
class Player{
 

916 名前:public void Say(object str){
  Console.WriteLine(str); }
 public void Dance(object d){}}
class Game{
 List<Action<object>> scenario = new List<Action<object>>();
 public void Init_Scenario() {
  var akane = new Player();
  var player = new Player();
  scenario.AddRange(new Action<object>[] {
   o=>akane.Say("おはよう"),
   o=>player.Say("おはよう"),
   o=>akane.Dance(1),
   o=>player.Say("いきなり踊るな!"),
  });}}
[]
[ここ壊れてます]

917 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 01:14:37.99 ID:lYlDUfoh.net]
IronPythonでも組み込んどけばいい
自作する価値はない
シベリア超特急エンドレスで見た方がマシ

918 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 01:20:05.47 ID:0HyN1ztj.net]
c# 6.0ならRoslyn for Scriptingが使えるのでスクリプト機能を簡単に組み込めるだろう。

919 名前:uy ◆Qawu9.2l1E mailto:sage [2015/11/17(火) 13:02:45.67 ID:+c9tLHNn.net]
>>878
そんな作りで効率上がると思ってんの?wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

920 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 13:12:19.65 ID:0HyN1ztj.net]
何このアスペwww



921 名前:uy ◆Qawu9.2l1E mailto:sage [2015/11/17(火) 13:26:31.53 ID:+c9tLHNn.net]
やりたい事の最終目標はそのシナリオごとに単体で開発して起動テストが出来て、そのままゲームに組み込める形だろ
HTMLを書いてブラウザで表示させるようなものをゲームプログラミングで行う
つまりブラウザ開発

922 名前:uy ◆Qawu9.2l1E [2015/11/17(火) 13:33:24.71 ID:+c9tLHNn.net]

>877 :デフォルトの名無しさん:2015/11/17(火) 00:10:46.96 ID:0HyN1ztj
>はじめからどういう目的があるのかを質問に含めないから厄介なことになるんだ。
>BASICみたいな感じで簡易スクリプト言語を組んでしまえばいい。

>MSG
>何かのメッセージ
>MSGEND

>SET A=100
>GET B,A

>みたいなやつを決めて、C#側での変数管理は、Dictionary<string,object> values;のようなディクショナリでまとめておいて、
>SET命令が出てきたら、values["A"] = 100。
>GET B,Aなら、values["B"] = values["A"] って感じで実行するように組んでおけばいい。




低能晒しあげ

923 名前:デフォルトの名無しさん [2015/11/17(火) 13:43:42.85 ID:R+1w9ien.net]
>>891
俺はこの方法でやろうと思う
テキストファイルを読み込む時に個々の命令はクラスの配列に全部入れてしまう
だからゲーム中に命令解釈のなんていうのかオーバーヘッドみたいなのは発生しない
それでちゃんと動くと思うよ

924 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 14:37:25.22 ID:lYlDUfoh.net]
ぐだぐだ言ってないで手を動かした方がいい
その方が挫折が早くなって時間を有意義に使える

925 名前:uy ◆Qawu9.2l1E [2015/11/17(火) 15:03:15.83 ID:+c9tLHNn.net]
>>892
動くと思うけど動かせないと思うよ
技術力的に

926 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 16:22:29.57 ID:slq8dUH/.net]
>>892
>>885
シカトすんな

927 名前:デフォルトの名無しさん [2015/11/17(火) 16:58:51.42 ID:R+1w9ien.net]
>>895
回答遅れてすいません
それはキャラクターの動作をリストで持ってるだけですよね
俺としてはシナリオにそのシナリオのラベルや分岐情報などをつけたいと思ってるんです

928 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 17:00:51.13 ID:7LzXRzXH.net]
>>896
それ、やるにしてもXMLで管理すればよくない?

929 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 17:11:59.62 ID:CRnDMuhn.net]
>>896
全部書かなきゃわからんのか!
あれを応用すれば言ってること全部できるだろ!
分岐するなら新しいリスト作ればいいだろ!
テキストから読むこともない
何が不満なんだよ!アホ!

930 名前:デフォルトの名無しさん [2015/11/17(火) 17:16:13.59 ID:R+1w9ien.net]
>>898
やってくれなんて言ってませんw
どう回答したものかと困ってこういう書き方になってしまいました
スンマセン
当然自分でやります



931 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 17:18:33.49 ID:kJodvt3B.net]
それなら普通にコード書いたほうが良くないか?

932 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 18:34:42.67 ID:3nwXwekt.net]
シナリオを人間が書きやすくする必要がないならコードで書いたほうが早いな
どうせクソゲームなんだろうから誰もシナリオなんて書いてくれないわけで
自分でひりだすんだろうからコードで書いたほうが時間の節約になるな

933 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 18:37:45.69 ID:kJodvt3B.net]
ノベルゲーとかなら、わざわざゲームエンジンから作らなくても、既に実績のある吉里吉里とか使った方がいいしな

934 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 19:05:22.52 ID:sj29+6cn.net]
あんまりレスの内容見てないけど、ゲームできたら見せてくれよ

935 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 19:20:52.79 ID:A3FVmbuJ.net]
どんなゲーム?
c#を

936 名前:覚えるまでみたいなゲームだと面白いな

ああああはレベルが上がった!

if文を覚えた!条件分岐ができるようなった!
[]
[ここ壊れてます]

937 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 21:30:57.69 ID:lYlDUfoh.net]
それはどこかがやってたような?

938 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 22:16:03.94 ID:jwVZTkmN.net]
プレイヤーが作った虫同士をネットで対戦させるようなゲームがやりたいな

939 名前:デフォルトの名無しさん mailto:sage [2015/11/17(火) 22:16:57.43 ID:SR74YNAG.net]
>>887
roslynのc#scriptingはまだプレリリースだし、仕様が安定してないところがあるので、
luaとかの組み込み用言語使った方がいいと思うなぁ。

c#scriptingはなかなか魅力的だけど。

940 名前:uy ◆Qawu9.2l1E [2015/11/17(火) 22:19:04.52 ID:H8TlhYuF.net]
リアルタイムで自機のショットアルゴリズム記述して
進んでいくSTG作ろうとした事あったけど色々無理があってやめた



941 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 00:33:12.41 ID:SNPtSU1p.net]
面白そうではあるな

近い趣向のものでは、NPCに戦略支持を出してくものがあるけど

ビジュアルスクリプトにするにせよ、テンポ調整が難しそうだな
むむむ…

942 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 07:37:45.36 ID:by9GKQSy.net]
ファミコン時代の記憶が蘇ったわ
ブリーダー (ディスクシステム)
https://youtu.be/xz3N-d-e-RQ

943 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 08:05:33.01 ID:G8OYuYmR.net]
Dispose()を呼び出さないといけないクラスがありますが
Formアプリを強制終了したり、Dispose()を呼び出さないでFormを終了した場合
何か問題になったりしますか?

944 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 10:21:52.47 ID:4O1y0zjC.net]
>>911
そんなこと気にせずにドンドン必死でプログラム書けばいつか答えが見つかるよ。

945 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 12:46:54.84 ID:/pyqs2gq.net]
>>911
using使いなさいよ

946 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 14:35:01.75 ID:8OGiKQJm.net]
Formにusingなんか使えないだろw
ShowDialogで表示してるなら別として…

947 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 16:00:50.19 ID:1FcAcZvq.net]
Formに使う話にいつ変わったの?

948 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 20:35:15.11 ID:by9GKQSy.net]
>>911
参照が切れればいつかはGCされる
プロセスが終了すればOSに回収される

949 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 22:21:51.16 ID:LvRn/Spf.net]
>>914
いつもusingしてるが
お前は何を言っているんだ低能

950 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 22:53:39.77 ID:XBTkD2/m.net]
Usingもわからな・・・あ、ここ初心者スレかw



951 名前:デフォルトの名無しさん mailto:sage [2015/11/18(水) 22:55:58.03 ID:s071DD2K.net]
単芝は余裕ぶりたい心の見栄

952 名前:デフォルトの名無しさん [2015/11/19(木) 01:22:50.82 ID:6x5+bHoL.net]
んんんんっwwwwwwwwww

953 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 05:51:38.88 ID:cNWt69lk.net]
クラスを作る時
インターフェースから書いていきます?
実装から書いていきます?

954 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 06:08:49.37 ID:yq8an3Lp.net]
インターフェイス前提のクラスなら実装から書かないでしょ

955 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 06:18:09.35 ID:cNWt69lk.net]
あ、違った
アプリ作る時
インターフェースから作っていきます?
実装から作っていきますか?

今インターフェースを勉強しているんだけど
インターフェースから作った方が綺麗なコードが
書けるんじゃないかなって思ったんですけど

956 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 07:14:47.20 ID:my8rYb+Z.net]
先にインターフェイスを作るのなら、その前に設計書を書かなければならない
最初に全体の完璧な設計が出来上がってるのであれば当然インターフェイスから作るのが後戻りがないわな
それができないんなら汚くていいから実装→リファクタ

957 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 07:43:41.76 ID:YneMFXa5.net]
C#のTextBoxコントロールで
MultiLineプロパティをtrueにセット複数入力が出来る場合で
入力エリアの一番下の位置に空白が出来るのを何とかしたいのですが
何か方法はありませんでしょうか?

現状 /=入力スペース
-----------------------------
1233333/////////////////////スクロールバー
1233333/////////////////////↑
1233333/////////////////////
1233333/////////////////////↓
    ←ここに余白が出来る。エンターを押すと更に下に移動する
------------------------------

希望 /=入力スペース
-----------------------------
1233333/////////////////////スクロールバー
1233333/////////////////////↑
1233333/////////////////////
1233333/////////////////////↓
------------------------------

よろしくお願いします。

958 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 07:51:55.38 ID:cNWt69lk.net]
>>924
インターフェイスの抽出なんて機能があったんだ
設計書は書けないから実装からのほうが良さそうですね

959 名前:デフォルトの名無しさん [2015/11/19(木) 08:59:06.47 ID:jS0xGfYR.net]
ブラッド・コックスとトム・ラブがObjective-Cを作り「この言語はCのメモリ安全性とSmalltalkの高速性を合わせたものだ」と宣言する。
現代の歴史家は2人が失読症ではないかと疑っている。
https://twitter.com/okdshin/status/666903312151613440

960 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 10:30:02.98 ID:A33ByGDA.net]
test



961 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 10:39:22.99 ID:A33ByGDA.net]
interfaceはセマンティクスの定義なんだよ。
チーム開発においてクラスメンバのシグネチャを強制すれば振る舞いを誰が実装しても大きな問題おきないでしょ。
実装なんてブラックボックスでいいんだよ、利用者はシグネチャさえわかればいいんだから。
数百、数千億規模のプロジェクトでもまともにinterface作ってない場合多いからレベル低すぎるね。
上流がコーディングできなんじゃ設計なんてできるわけないんだよ。

962 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 12:49:16.71 ID:G20bfr3g.net]
>>925
自力でやるしかないんじゃね?

963 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 12:58:52.05 ID:h0D34cF3.net]
>>925
何を言ってるのかよく分からない。
そんなこと起こらんけど。

>>927
気付いてないのかもしれないが、コピペマンのお前さんこそ統合失調の疑いが濃厚だよ
馬鹿じゃないの。

964 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 13:16:57.34 ID:WApHXGH2.net]
>>925
TextBoxのHeightを小さくして入力スペースぴったりになるようにすれば?

965 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 13:46:03.31 ID:7AHNe+Hm.net]
>>929
本当それ

基礎中の基礎なのにinterfaceの使い方もしらないオレオレ設計者しかいないわ、うちの会社

1.1 ボタン押下時イベント

みたいなExcel方眼紙にオレオレ詳細設計書書くのが普通になってるし

966 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 14:36:23.31 ID:j6gYHvV7.net]
>>925
最後の改行を消せ

967 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 14:42:03.70 ID:gXUiymqK.net]
3行以上書く奴はキチガイ←せいかい

968 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 15:07:03.92 ID:h0D34cF3.net]
>>935
唐突に意味不明なこと書くお前がキチガイなんだ馬鹿。

969 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 15:13:15.38 ID:f/FwklKJ.net]
>>925
若いもんはそういう些細な事が気になるもんじゃ。

970 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 15:28:03.26 ID:A33ByGDA.net]
極論すると要件を理解してる前提であればInterfaceあれば仕様書や手順書なくたってコーディングできるんだよ。
運用の問題はアトリビュート、共通化したい機能はトレイト・ミックスインで対応可能。
いい加減、ドキュメント作成より実装に工数かけようぜ。



971 名前:デフォルトの名無しさん [2015/11/19(木) 16:07:33.31 ID:PQiMaMHb.net]
security.srad.jp/story/15/11/18/0610220/security.srad.jp/story/15/11/18/0610220/
昨今のマイクロソフトは日々おかしな事しでかすな
もう、めんど臭いし、全員でLINUX移ろうぜ

972 名前:デフォルトの名無しさん mailto:sage [2015/11/19(木) 16:26:04.89 ID:h0D34cF3.net]
>>938
誰と戦ってるの?w

973 名前:デフォルトの名無しさん mailto:sage [2015/11/20(金) 00:05:26.71 ID:U2PcGSVo.net]
xmlやjsonをファイルで扱いたいのですが、\などをエスケー

974 名前:vしないようにreadwriteするにはどうすればいいでしょうか? []
[ここ壊れてます]

975 名前:デフォルトの名無しさん mailto:sage [2015/11/20(金) 06:50:13.45 ID:0b9D5XOx.net]
もともとエスケープなんかされない
ソースコード上にリテラルとして文字列書く場合だけ\\か@使う

976 名前:デフォルトの名無しさん mailto:sage [2015/11/20(金) 15:56:07.37 ID:JvKaxnpE.net]
>>925の人気に嫉妬

977 名前:デフォルトの名無しさん mailto:sage [2015/11/20(金) 16:58:48.84 ID:IfcC+Den.net]
GraphicsPathのAddStringで文字列の先頭に空白があると削除されてしまいます。
これを回避する方法はありますでしょうか。

978 名前:デフォルトの名無しさん mailto:sage [2015/11/21(土) 17:21:44.96 ID:hR7d38wi.net]
foreach(x,,,)
{
foreach(y,,,)
{
yield return x==y
}
}
foreachが入れ子になっているのは
ラムダで表現するのは無理だよね?

979 名前:デフォルトの名無しさん mailto:sage [2015/11/21(土) 17:25:46.50 ID:JFj+7Wuj.net]
>>945
SelectMany

980 名前:デフォルトの名無しさん mailto:sage [2015/11/21(土) 17:50:16.36 ID:w45vfkw8.net]
string str = "ああ123.45abc678";
の時にstrを数値に変換するとして、変換出来る最初の部分文字列
"123.45"
を数値化したいのですが、そういう関数ありますか?
さらに、
string str = "ああ1.2E3abc678";
なら、
1200
が得られるといいのですが。
つまり全角半角どちらでも良くて、かつ指数表示にも対応している。
標準の関数でありますか?



981 名前:デフォルトの名無しさん mailto:sage [2015/11/21(土) 23:22:04.67 ID:lPfCyIV+.net]
列挙型の要素を動的に追加したり削除したりってできる?

982 名前:デフォルトの名無しさん mailto:sage [2015/11/21(土) 23:23:57.45 ID:GdR6w5S8.net]
通常の手法ではできません

983 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 00:27:01.45 ID:iT1tZCI1.net]
>>948
目的は?

984 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 03:00:05.12 ID:JSdSEHUd.net]
>>950
Unityのエディタとスクリプトが依存しあってる環境でエディタ上での変更に柔軟に対応したい(つまり一々コードを手作業で書き換えず楽したい)のと、
文字列を引数にして検索するメソッドを使う際にできれば列挙型か文字列定数で安全に取り扱いたい
というのが目的だったけど列挙型のスクリプトを生成するスクリプトを書くのが現実的なのかな

985 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 03:03:06.28 ID:o24m0lwv.net]
またID:OxpghztZかよ

986 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 03:06:45.63 ID:u++Mym7W.net]
ばれてやんのwww
お前もうコテハン名乗れよwww
お前ぐらいだよ。そんな変な質問するのwwww

987 名前:デフォルトの名無しさん [2015/11/22(日) 05:54:12.53 ID:c83Tb2v8.net]
もう馬鹿なんじゃないかっていうくらい基本の質問で恥ずかしいんですが・・・
実際の開発でメンバー修飾子(public intenal etc..)ってどういう基準でつけてるもんなんですか?


データベースと連携した業務アプリケーションをちまちま作ってるんですが、
privateにしなきゃというところは、何となく考えながらつけてるんですが、
そうでないところで(他クラスからアクセスさせたいプロパティとか)
publicでいいのか、せめてinternalをつけた方がいいのかどうも明確に意識して設計できないのです
開発チームとかあるわけでなく、一人で作っていて使い分けの事例なんか見ててもピンとこないというか

988 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 06:06:55.82 ID:zwZfG106.net]
>>954
パッケージとして独立させてAPI公開する気がないんだったら
迷うところはpublicでいいだろ

つか一人で作ってるなら全く気にする必要ないような…

989 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 07:37:23.55 ID:PowSWGiN.net]
>>947
全角/半角変換、日本語を扱うのは、Linuxでは、
nkf ライブラリを使うけど、C#には無いの?

それか最初に、全角を半角に変換してから、正規表現を使えば?

990 名前:デフォルトの名無しさん [2015/11/22(日) 13:10:53.96 ID:eHZxB5Wh.net]
>>952
別人だよw
ID:OxpghztZは俺だからw



991 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 13:21:21.34 ID:YBzI3bTB.net]
ゲーム作ろうとしてる奴なんか十把一絡げでいい
総じて低レベルだから

992 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 16:34:36.06 ID:2L1cven6.net]
プログラミングでゲームを作ろうというというのは、
誰にでも思いつく発想だからな
殆どは挫折する

993 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 17:26:57.27 ID:KDgQ57Ye.net]
だがベーマガ時代はそうはならなかった。
日本中の少年少女がゲームプログラミングに熱中し、
作成したゲームのソースをベーマガという雑誌に投稿し掲載されたものだ。

今、日本のIT業界を支えてるのは高スキルな彼らである。

994 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 17:52:36.89 ID:Z+udvk0o.net]
>>960
前も書いた気がするけど、ベーマガなんてお子様向けの子供だましの雑誌だよw
まあ評価は世代にもよるだろうけどね。
少なくとも俺の評価はそう。

まあそれはどうでもいいけど、そういうネトウヨ的自己陶酔は傍目に気色悪い。
それが自己陶酔だって気が付いてないんだろうけど。

ついでに言うと、ベーマガの時代(って言っても20年あるから一口には言えないが)はゲームも
PCのハードも素朴な物だったから低スキルでもそれなりに評価されるものが作れたが、
今の時代WindowsにしろAndroidにしろそもそもゲーム向きじゃない上に
ユーザーの目も肥えてるから、はっきり言って今の時代ゲームを作る方が何十倍も大変だと思う。

実際問題今時のゲームプログラマってプログラマ全体の中でも地頭がよくないと出来ないんじゃないの?

995 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 18:06:41.65 ID:YBzI3bTB.net]
ゲーム作ろうとしてる奴とゲームプログラマを同列に扱った覚えはない
ゲーム作ろうとしてる奴はゲームプログラマではない

996 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 18:31:41.01 ID:GP1Qn5OD.net]
ベーマガのプログラムを今のゲーム制作と比較するのは低能のすること。
企画 + ゲームデザイン + プログラミングをすべて一人でやってたのをお子様とか言っちゃうのはゆとりかな?

997 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 18:34:49.04 ID:fPUy/JrI.net]
>>961
× 実際問題今時のゲームプログラマってプログラマ全体の中でも地頭がよくないと出来ないんじゃないの?
○ プログラマって本当は地頭がよくないと出来ない

本来の問題は日本では頭が悪い奴がプログラマになって無駄なデスマーチ&生産性が上がらないための低給料
というデフレスパイラル的なものに陥っていることだろ。(アメリカではこれを回避できているらしい)
ゲームプログラマだけが特に頭がいい必要があるとは思えない、というか、
本来はどの方面のプログラマも頭がよくないと駄目なんだよ。

ただ、プログラミングなんて手段でしかないんだから、
ゲーム好きがゲームを作ろうとするのは自然なことだと思うし、いいことだと思うよ。
とはいえ、今ここでやろうとしている2人は両方とももう少し基本を押さえるべきではあるが。

C#は軽量言語ではない。ほぼ全てのケースに対して対応できる記述能力/ライブラリは既にある。
逆に言えば、初心者が先人が全く想定していなかったケースにいきなり当たる確率はほぼ無い。
今お前らがやろうとしていることが出来ないのは、やり方が間違っているからだ。
(普通は違うやり方で実装し、その方がいい/それで問題ないからその実装手段が提供されていない)

998 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 18:42:55.24 ID:NW0PnoYA.net]
>>948
文脈わからんし動的に追加、削除の含意も知らんが
それってDictinary<string,int>の仕事じゃないのって、アドバイスしとくね

あとは列挙型の内部実装がどうなってるかしらないけどどうせクラスか構造体かでしょ
他にあるとすればリフレクション使ったりで列挙型クラスを動的構築するとかになるのか?
まあやりたくないよね、そんなこと

999 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 18:47:35.92 ID:j30Wwuuw.net]
List<int,string,double>みたいなのは
将来使えるようになる?

1000 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 18:51:26.08 ID:NW0PnoYA.net]
>>966
なにそれ?どうやって使うの?



1001 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 19:03:27.41 ID:Z+udvk0o.net]
>>964
本質的にプログラマに向かない奴がプログラマになってる(それで2chとかでブラックがどうのとか自分の無能を棚上げして
被害妄想全開)って現状認識はその通りだと思うが、プログラマって一口に言っても要求される能力は全然違うわけで、
例えばC#で特定企業向けの業務ソフトを作ってる人間とゲームプログラマじゃ、恐らく後者の方が圧倒的に
高い能力が要求されるのはまあ事実だと思うよ。

そのくせ社会的な評価はあんまり高いように思えんから何か損な仕事だな。
俺はゲームプログラマじゃないけどね。

1002 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 19:03:55.53 ID:DtMt13r7.net]
Tupleの事でしょ
今でもプロパティ名がItem1~って固定な簡易Tupleならある
でもプロパティ名もその場で付けれるちゃんとしたTupleの実装予定はあるよ

1003 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 19:06:02.36 ID:KDgQ57Ye.net]
>>961
ゆとりの言い分はよく分った。

1004 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 19:08:06.34 ID:+71DZHa4.net]
技術を磨くだけだったら好きなら誰にでもできる
社会的に成功するのはその上ビジネスが分かってる奴で、これは稀

1005 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 19:12:42.09 ID:Z+udvk0o.net]
>>970
俺から見たらベーマガ世代こそどっぷりゆとり世代なんだけど。

1006 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 19:15:10.11 ID:fPUy/JrI.net]
>>969
ちょっと脱線するが、Tupleって結局何がいいんだ?
構造体やクラスで問題なく実装できるよね?
ただ流行っているみたいだから、何か利点があると思うのだが、、、

1007 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 19:21:08.24 ID:+71DZHa4.net]
>>973
タプルがじゃなくて関数型プログラミングが(意識高い系の連中の中で)流行ってる
関数型プログラミングでは複数の値を一つにまとめて扱いたいことが多いのでタプルが必要
オブジェクト指向プログラミングならフィールド書き換えればいいので本来不要

1008 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 19:30:38.64 ID:KDgQ57Ye.net]
>>972
中高生が一種や二種を取るんだ。そして当時の試験範囲は大学レベルの英語や数学、そして商業、工業も含まれてる。
おれも余裕で合格したけどね。今みたいに簡単じゃないよ?選択マークじゃなく筆記だし。

1009 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 19:37:26.35 ID:fPUy/JrI.net]
>>968
ゲーム:チューニングゴリゴリ、ただし基本的に1発出して終わり
特定企業向け業務ソフト:動けばいいが、長期的メンテナンスが求められる

ゲームプログラミングの方が単品では難しいのは事実だけど、
業務ソフトには長期メンテを考慮した構成が求められる。(難しさの方向が違う)

ただ、チームとしては、ゲームは10人中10人バリバリでないと駄目なのに対し、
業務ソフトなら、トップ1人が美しい構成を考え、残り9人は並みでいい。
だからゲームチームを作る方が難しいし、
一般論としてゲームプログラミングの方が難しいというのもその通りだろう。

1010 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 19:55:16.96 ID:NW0PnoYA.net]
ゲームはオクルージョンカリングとか空間分割木とか意味不明なまでに難しい世界があるからな
単純な2Dゲーなら今はマシンパワーもあるし、複雑怪奇な最適化はしなくてもいいと思うけど
マルチスレッドとか、メモリアクセスやファイルアクセスのタイミングとかやりだすと
複雑そうな感じは受ける



1011 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 20:19:08.43 ID:fPUy/JrI.net]
>>974
さらに脱線して申し訳ないのだが、関数型プログラミングは何で流行っているの?
正直、余りメリットを感じないのだが

1012 名前:B(なお使っているのはJavaScript)
HaskellかLispやらないと理解不能かな?

言っちゃ悪いが、Lispなんて昔からあっても誰も使ってなかった=実用レベルに達していないゴミ
だと考えている。それとは別に、内部状態を持たないとか、カリー化とかで検証がし易くなるのは事実だけど、
今その手の言語を使っている奴らがそこまでの検証レベルを要求されているとは到底思えない。
(言語いじって遊んでいるだけのように見える)

JavaScriptとかでも(俺は本業ではないが)
・ローレベルコードは書かない(キリッ (for文を絶対に使わず、map(匿名関数)で処理)
・内部状態を持たない(キリッ (途中一部分だけで済む場合も頭から全部処理)
も多くて、確かにこの方法ならバグりにくいが糞遅い。実感としては大半がこんな感じ。
お前ら明らかに方向を間違ってるよなーとしか思えないのだが。
(問題ない場合はこの手の超富豪プログラミングもありだが、問題あっても対策しない感じがある。
宗教がかった聖域というか。)
[]
[ここ壊れてます]

1013 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 20:38:22.50 ID:xDxhP+Cq.net]
流行ってねえよ
声がでかい奴が拡声器でわめいてるからそう感じるだけだ

1014 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 20:45:30.67 ID:NW0PnoYA.net]
Lispが使われないのは、JavaやC#のように熱心な営業攻勢が無かったからだよ
関数型を学ぶメリットはドキュメントが営業的観点で腐っていないということ
コミュニティがそれによって質の高い状態が保たれている
一番のメリットは「ユーザーにバカが少ない」ということこれに尽きる
LispやHaskellなんて、それこそ熱心な勉強家でなければ手に取らないということ

純粋関数はマルチスレッドに良い影響をもたらす
というかGUIとかスレッドとかどう見ても関数が主役でオブジェクトがシンタックスの邪魔をしている
最近勢力を誇っているwebサービスもほとんどが関数型指向でかかれているし
Javascriptが今隆盛を誇っているのも結局はそういうことなんだよな
まあHadoopやMapReduceとか必要になるようなアプリケーション書くような企業は限られてるけど
マルチコアが前提となってくると結局関数の純粋性が常に問われてくる

幸いまだC#はLINQやTaskで関数型やマルチスレッドをサポートしてるので生存の余地はあるけどね
というかC#にLINQが導入されたのは、どう考えてもSQLではなく関数型の影響だしな

内部状態を極力持たずにというのはweb(HTTP)の考え方だし
JsonやXMLや(S式)で非同期処理するということを考えると関数型は流行らざるをえない
関数型が流行っているというよりwebベンチャーが流行ってるというのが正しいな

まあJavascriptがそのポテンシャルを見いだされるまでに10年近くかかったわけだし
Javascriptが微妙なのは同意するよ

1015 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 21:03:03.77 ID:T8hXZH4x.net]
関数型は、スクリプト等の言語を作りたい人とか、高度な文字列処理が必要不可欠な人とか
科学計算駆使しなきゃならない人とかが使うんだよ
そういった領域では実用的というより必須になる
最近話題にのぼりやすい言語では、R言語とかがあるが関数型になっている
C#は汎用言語なので色々な領域の処理をする人が居て、こういった処理をしたいと望む人には欲しい機能なんだ
最近は、ビッグデータとか取り扱う人も多いでしょうし、例えば金融関係とかトレーディング等でHaskellの採用があったりする
そういう意味では地味に流行ってはいるかもしれない、ビッグデータもバズワードになる程

1016 名前:度には流行ってるからね
タプルは自分も欲しいと思っている機能、オブジェクト指向が不向きな領域の処理多いが
ユーザーインターフェイスと別けて別言語でというのも煩わしいので

>声がでかい奴が拡声器でわめいてる
ラムダ式の人とかうざいよね、これだけは同感w
昨日の要求はしたいが、声高々に流行っている言う程のもんかよwww
[]
[ここ壊れてます]

1017 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 21:07:02.69 ID:o24m0lwv.net]
なにこれ、自演祭り?

1018 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 21:09:34.06 ID:T8hXZH4x.net]
あぁ、また自演なのかな、例のヤツの自演なのかもしれん
>>981 だけは違いますんでw

1019 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 21:31:52.46 ID:GP1Qn5OD.net]
「スレチ」という便利な言葉がある

1020 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 21:35:46.49 ID:T8hXZH4x.net]
自演してでも自分の話したい話題に流れを変えたい酷いかまってちゃんが居るだけですよw
彼にとって、スレチとか関係ないのです、誰もお前とは話したないから、さっさと自殺すればいいのに



1021 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 21:54:59.54 ID:fPUy/JrI.net]
>>980
> 純粋関数はマルチスレッドに良い影響をもたらす
これは確かにその通りなのだが、同じ事はオブジェクト指向でも言われていたはず。
OOPも1オブジェクトに対して1スレッドを割り当てれば干渉しない。
関数型で自動マルチスレッドを期待するのなら、結果的に完全に同じものになる。

> 内部状態を極力持たずにというのはweb(HTTP)の考え方だし
JavaScriptに関してはこれは多少弁解の余地があって、
実際やっていると503エラーとかで内部状態がずれる時がよくあるので、
最初から管理しないというのも一つの方法にはなる。(ただし糞遅い)

> JsonやXMLや(S式)で非同期処理するということを考えると関数型は流行らざるをえない
これはよく分からない。関数型の方が綺麗に書けるか?
ちなみにPromiseとか欲しいとも思わない。主に手続き型で書いているからというのもあるとは思うが。
JavaScriptはPromiseを採用、async/awaitも検討中だ。
C#はPromiseなし、async/awaitありだ。俺はこっちの方が理解しやすいのだが、これもスタイルの違いなのか?

1022 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 22:09:26.92 ID:xDxhP+Cq.net]
口から下痢たれ流すの止めてくんない

1023 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 22:09:50.22 ID:fPUy/JrI.net]
>>981
> 例えば金融関係とかトレーディング等でHaskellの採用があったりする
これは知っているが、結局のところ、今Haskellが出来る=それなりの頭である事がある程度期待できる
だけであって、>>980の指摘通りで、別にHaskellが適しているわけではない気がするのだが。

> C#は汎用言語なので色々な領域の処理をする人が居て、こういった処理をしたいと望む人には欲しい機能なんだ
俺はJavaScriptをやって初めてクロージャを知り、確かに便利だと実感した。
ただもっと驚いたのは、C#も2.0からクロージャを普通に使えたことだ。
とはいえC#がクロージャをガンガン使っているイメージはない。
逆に言えば、C#のスタイルなら大して恩恵がないのだと思う。で、以下なのだが、

> タプルは自分も欲しいと思っている機能
これ何がうれしいんだ?
既に書いたが、普通に構造体やクラスでやるのと同じとしか思えない。
関数型風に書いたらタプルの方が綺麗に書けるって事?(それでも変わらない気がするが、、、、)

1024 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 22:12:50.69 ID:rVLRuBGq.net]
3行以上書く奴はキチガイって嘘じゃなかったね
ゴメンね(ゝω・)v キャピ

1025 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 22:24:15.75 ID:yPUHF/WV.net]
>>981
> そういった領域では実用的というより必須になる

たかが言語で必須とか…

関数型言語がない時代は、

> スクリプト等の言語作成
> 高度な文字列処理
> 科学計算を駆使

する奴は居なかったのかよ

1026 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 22:29:28.42 ID:fPUy/JrI.net]
誰と勘違いしているのかは知らんが、スレを変えたい場合は俺は問題ない。
誰かが俺に対して他のスレでレスを付けた場合、俺がレスを返すのならそこで返す。
だからレスをくれる奴がいるのなら、スレを選んでくれていい。(テストスレでも可)

1027 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 22:41:52.29 ID:iT1tZCI1.net]
Tupleは複数値リターンのために導入されたものと思っていたが、複数値リターンが未だ導入されない

1028 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 22:50:34.89 ID:fPUy/JrI.net]
>>992
てか問題なくね?
www.atmarkit.co.jp/fdotnet/dotnettips/1024tuple/tuple.html

1029 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 22:57:18.42 ID:T8hXZH4x.net]
そんなタプルは問題ありありだよw

1030 名前:デフォルトの名無しさん mailto:sage [2015/11/22(日) 22:59:26.10 ID:Bfhlr/Lz.net]
Item1,Item2とかソースに出てくる時点で失格
多重代入と引数リストへの展開ができない限りは使うべきでない



1031 名前:デフォルトの名無しさん [2015/11/22(日) 23:58:35.59 ID:SVdGikuE.net]
>>974
まぁ、そのためだけに構造体とか作るの面倒くさいしな

1032 名前:デフォルトの名無しさん mailto:sage [2015/11/23(月) 00:24:30.36 ID:NS56NU1F.net]
>>981, ID:T8hXZH4x
自分がついていけない話になるとすぐスレチだと言い出すクソガキはどこのスレにもいる。
お前が嘘を嘘と見抜けない池沼でいるのはお前の自由だが、
荒らしでないつもりなら>>1読んでスレ立てろ。

1033 名前:デフォルトの名無しさん mailto:sage [2015/11/23(月) 00:51:40.63 ID:2bvpc+pi.net]
説教怖〜い

1034 名前:デフォルトの名無しさん mailto:sage [2015/11/23(月) 00:55:30.12 ID:d/p1Vajd.net]
埋まりそうだったので宣言無しで建てました、失礼

ふらっと C#,C♯,C#(初心者用) Part118 [転載禁止]©2ch.net
peace.2ch.net/test/read.cgi/tech/1448207673/

1035 名前:デフォルトの名無しさん mailto:sage [2015/11/23(月) 01:36:08.01 ID:5/8mbdQh.net]
ついていけるとかついていけないとか関係ない、キモすぎ、触りたくない

1036 名前:デフォルトの名無しさん mailto:sage [2015/11/23(月) 02:03:44.01 ID:V0PiNkF/.net]
おれが神

1037 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

1038 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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