トップページ⇒tech
1001コメント304KB

ふらっと C#,C♯,C#(初心者用) Part115©5ch.io

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん 転載ダメ©2ch.net2015/03/18(水) 18:08:26.52ID:irwZfv9C
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

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

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

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

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

■前スレ
ふらっと C#,C♯,C#(初心者用) Part114
http://peace.2ch.net/test/read.cgi/tech/1419512512/

■関連スレ
C#, C♯, C#相談室 Part86
http://peace.2ch.net/test/read.cgi/tech/1419608259/

■コードを貼る場合は↓を使いましょう。
http://ideone.com/
0002デフォルトの名無しさん2015/03/18(水) 18:09:59.85ID:irwZfv9C
久々のスレ立てなのでミスってたらごめん
0003デフォルトの名無しさん2015/03/18(水) 19:20:40.51ID:Wy2pax8J
このスレ見つけて3スレ目なんだがなかなか卒業できません。1乙
0004デフォルトの名無しさん2015/03/18(水) 21:40:50.37ID:jbWhgN6h
class Program {
static void Main(string[] args) {
System.Console.WriteLine(">>1乙");
// System.Console.Read();
}
}
0005デフォルトの名無しさん2015/03/20(金) 22:54:14.46ID:brXRDOJ0
IEnumerable<T>がわかりません
0006デフォルトの名無しさん2015/03/20(金) 23:06:43.99ID:rsGOAKjx
実装してればforeachできる
0007デフォルトの名無しさん2015/03/20(金) 23:55:58.86ID:D7R/Oavu
実装していなくてもforeachできる
0008デフォルトの名無しさん2015/03/21(土) 01:29:59.10ID:cpUWLX1E
tree型のデータを扱うクラスはありますでしょうか?
あるベースクラスを継承したファイルとフォルダのようなクラスがあり、
フォルダは自身にファイル・フォルダのリストを持ちます。

そして、ルートのフォルダから
ファイル・フォルダの一覧を取得したいです。
0009デフォルトの名無しさん2015/03/21(土) 02:10:20.98ID:wTPdkcAS
リストの中に入れるアイテムのメンバにリストを持たせれば出来るよ。
0010デフォルトの名無しさん2015/03/21(土) 06:40:00.57ID:qnP8SmNL
>>8
C# Tree でググれば実装例がいくらでも出てくるから、参考にすれば?
例えば http://d.hatena.ne.jp/leetmikeal/touch/20141129/1417253143 とか
0011デフォルトの名無しさん2015/03/21(土) 06:42:24.60ID:SYey43kM
そんなもんレコードに親のキーか自身のフルパス持たせてRDBに突っ込んどけ
0012デフォルトの名無しさん2015/03/21(土) 07:39:13.91ID:cCLk7Rij
>>10
こういのってXMLで保存、復元できますかね?
Tは自作クラスなんだが
0013デフォルトの名無しさん2015/03/21(土) 07:49:51.41ID:cpUWLX1E
てか、treeって汎用のインターフェース用意されてないのか
0014デフォルトの名無しさん2015/03/21(土) 09:01:03.11ID:qnP8SmNL
>>12
こういうの使えばいいんじゃね
https://msdn.microsoft.com/ja-jp/library/system.xml.serialization.xmlserializer(v=vs.110).aspx
0015デフォルトの名無しさん2015/03/21(土) 10:24:04.00ID:pu88Wpcb
XElement一択
0016デフォルトの名無しさん2015/03/21(土) 15:03:14.02ID:yUHoQ5bE
フォーム1からアプリ設定用サブフォーム2を表示するのですが
サブフォーム2のキャンセルボタンを押した場合に直前にいじったサブフォーム2の内容が保存されることなく
閉じるようにするにはどのようにすればいいでしょうか
0017デフォルトの名無しさん2015/03/21(土) 15:17:05.16ID:PgQR/avs
>>16
そういうコードを書く。
当たり前だろ。
0018デフォルトの名無しさん2015/03/21(土) 15:40:36.30ID:CseyUbyb
あなたが設定を保存しないなら何も起こらないので普通にフォームを閉じればいいのです
0019デフォルトの名無しさん2015/03/21(土) 20:22:42.22ID:yUHoQ5bE
Properties.Settings.Default.Reload();
の一文で出来ました。お騒がせしました。
0020デフォルトの名無しさん2015/03/23(月) 22:27:54.58ID:+Bf/u61+
何時間くらいC#やっていれば、ここで答えている人のような上級者になれますか?
もう1年くらいやってますが初心者の域を脱せずに泣きそうです
0021デフォルトの名無しさん2015/03/23(月) 22:38:15.37ID:39b0MZjd
C#オタになってスレで偉そうに回答するだけならそんなに難しくないよ
C#に詳しいのとC#を使ってモノ作れるのは全く別の話
自在にモノ作れるようになるには相当な経験とセンスが必要だね
0022デフォルトの名無しさん2015/03/23(月) 22:51:03.37ID:3NGND9ju
>>20
おれなんか2年はここで質問してるわw
たぶん実務やるやつじゃないと卒業できないわ
0023デフォルトの名無しさん2015/03/24(火) 10:35:02.82ID:Vq1SJ9e7
interfaceって必要ですか?
実装してやるとどのようなメリットがあるんでしょう?
0024デフォルトの名無しさん2015/03/24(火) 11:26:55.46ID:O0HmV1I9
>>23
最も実利的な面を挙げるなら、継承関係のない
異なる型でも多態性を実現し、同じコードで処理できることかね?
結局遅延バインディングなんで実行時にそんなメソッドねぇよう!とならん為にね
0025デフォルトの名無しさん2015/03/25(水) 14:11:13.82ID:3Xhs3fbl
制作側がそう受け取られるリスクを計算してないわけがないな
0026デフォルトの名無しさん2015/03/25(水) 14:11:44.42ID:3Xhs3fbl
誤爆です。ごめんごめんご
0027デフォルトの名無しさん2015/03/25(水) 15:07:36.43ID:vTXsGO6E
DataGridViewをフォームに貼り付けて、セルに数行書き込んだ後、
int rowCount = DataGridView.Rows.Count;
MessageBox.Show(rowCount.ToString());
とやっても、0が表示されます
つまり数行書き込んでるのに、1行も中身がないという結果です
でもちゃんと書き込んだデータは見えるんです

どこが悪いんでしょう?
0028デフォルトの名無しさん2015/03/25(水) 22:29:16.69ID:vTXsGO6E
>>27
自己解決しました
MDIの親フォームから、子フォームに貼ったDataGridViewを
呼び出してたんだが、親フォームからの呼び出し方がまずかったです
子フォームのインスタンスを作ってから呼び出したらうまくいきました
0029デフォルトの名無しさん2015/03/27(金) 00:33:09.11ID:9zq+HqC6
ジェネリック引数をとるメソッドで
ジェネリックのジェネリックを参照することはできないのでしょうか?
このようにしたいのですが、参照できません。

public Wrapper<T> New<Wrapper<T>>(T value){
var val =new Wrapper<T>();
val.Value = value;
return val;
}
0030デフォルトの名無しさん2015/03/27(金) 00:40:56.16ID:Zbc2MDwX
>>29
public Wrapper<TValue> New<TWrapper>(TValue value)
where TWrapper : Wrapper<TValue>, new() {
var val = new TWrapper();
0031デフォルトの名無しさん2015/03/27(金) 00:53:46.97ID:9zq+HqC6
>>30
できないでごじゃる。。。
とりあえず、New<Wrapper>(object value)
にしてしのぎます。。。
0032デフォルトの名無しさん2015/03/27(金) 09:21:08.50ID:aS32uikB
 class Wrapper<T>
 {
  public Wrapper( T value )
  {
   this.Value = value;
  }

  public T Value
  {
   get;
   set;
  }
 }

じゃあかんのか
0033デフォルトの名無しさん2015/03/27(金) 09:32:19.38ID:tWQtWyES
>>31
boxingはヤメテー、定義時の型引数は仮引数なんだから実引数のように書いたらダメです
よって>>29はTが定義されておらず、>>30はTValueが定義されていません
コードからは↓がやりたいの?くらいしか読み取れん…

public static Tuple<T1> Create<T1>(T1 item1) {
return new Tuple<T1>(item1);
}
0034デフォルトの名無しさん2015/03/27(金) 10:42:49.39ID:CX/S/YAR
>>33
あるターゲットクラスに対する拡張メソッドとして使いたくて、
new した後に初期設定をして、ターゲットにラッパーコンポーネントとして付与します。
0035デフォルトの名無しさん2015/03/27(金) 10:55:56.97ID:f1qYI5TV
byte[] a = new byte[]{1,2,3,4};
とした時、
string join = "1:2:3:4";
を作りたいのですが
forループで join += byte[i].ToString()とかせずに、一行で一気にこういう連結した
文字列を作るLINQって言うのかな?何かそういうテクニックを教えてください。
0036デフォルトの名無しさん2015/03/27(金) 11:56:37.40ID:tWQtWyES
>>34
それは良いんだけど…型"パラメーター"だから型名ではなく識別子を書く…つまり>>29は文法間違ってる
ターゲットクラスのジェネリック型とメソッド引数が同一型なら>>33のようにすれば良いし、
クラス自体も設定する値もジェネリックにするなら複数の型パラメータを定義してください、必要に応じてwhere制約など使って

>>35
.NET4以降ならString.Join<byte>(":",a)だけで済むけど
それ未満ならaを事前にArray.ConvertAllやらLINQで、Convert.ToStringなりラムダ式で処理しておくとか
0037デフォルトの名無しさん2015/03/27(金) 12:44:17.40ID:f1qYI5TV
>>36
ありがとうございます。
String.Join<byte>(":",a)
で出来ました。すいません、でも本当にやりたかったのは、16進数
byte[] a = new byte[] { 0x01, 0xA2, 0xFF, 0xA1 };
を
"01:A2:FF:A1"
のようにしたかったのでした。簡単にする方法があれば教えてください。
0038デフォルトの名無しさん2015/03/27(金) 13:02:57.53ID:tWQtWyES
>>37
こんのぉ…小出しちゃんがぁ!一番簡単なのはこれかな
ttps://msdn.microsoft.com/ja-jp/library/bb311038.aspx#mt19
内部的にはこんな処理、ToString("X02")したのをJoinよりはこれReplaceした方が良いのかな
ttp://referencesource.microsoft.com/#mscorlib/system/bitconverter.cs,1f171e1fc8e2d3ef
0039デフォルトの名無しさん2015/03/27(金) 13:44:54.18ID:f1qYI5TV
>>38
有難うございました。
BitConverterで上手く行きました。感謝です。
0040デフォルトの名無しさん2015/03/27(金) 22:37:56.33ID:QtBYHZ1p
式木 x=>x+1 と x=>x+2 があって、その2つの式木をの和である、式木 x=>x+1+x+2 を作りたい場合どう書けば良いですか?
具体的には↓の○○○に何と書けばよいでしょうか?

Expression<Func<int, int>> ex1 = x => x + 1;
Expression<Func<int, int>> ex2 = x => x + 2;
var ex3 = ○○○; /// ex3は x => x + 1 + x + 2 と等価
0041デフォルトの名無しさん2015/03/27(金) 22:56:56.29ID:QtBYHZ1p
根本的な考えが方間違っているから
こうやって書け!とういう答えでもよいです
なにかヒントをお願いします
0042デフォルトの名無しさん2015/03/27(金) 23:11:24.72ID:coRkdDj7
式木の和ってそもそもそれなの?
0043デフォルトの名無しさん2015/03/27(金) 23:16:52.31ID:CX/S/YAR
>>36
型Tを持つタプルのクラスが欲しいのではなくて、
player.New〈HP〉(1)
player.New〈ATK〉(10)
こーいうことをしたいのです。
パラメータをオブジェクト化してるのは、
ATKなど強化した場合、任意のタイミングで効果を消すようなことをしたいためです。

player.New�ATK(10).Destroy(TurnEnd)
0044デフォルトの名無しさん2015/03/27(金) 23:26:07.66ID:Zbc2MDwX
>>40
自分で構文解析齧ったことがないと難しいかも
var param = Expression.Parameter(typeof(int));
var ex3 = Expression.Lambda<Func<int, int>>(
 Expression.Add(
  Expression.Invoke(ex1, param),
  Expression.Invoke(ex2, param)
 ),
 param
);
0045デフォルトの名無しさん2015/03/28(土) 00:02:02.79ID:NAWq+uJz
同じ回答が書かれててワロタ…

>>40
ex3 = x => ex(x) + ex(x)
のイメージなら >>44 であってる
0046デフォルトの名無しさん2015/03/28(土) 00:06:56.21ID:SN7vQ976
>>43
player.AddEffect(new AttackBuf(10).LifeTime(turn:5))
みたいなことをジェネリック使ってどうにかしたいということでしょうか
0047デフォルトの名無しさん2015/03/28(土) 01:09:43.49ID:XL4G4jKx
>>46
そうですね。
こんな構文を考えてます。

Player.Do<Attack>().To(Target).Resolve();
Magic.Do<Deal>().Object<Damage>(1).To(Target).Until<EndOfTurn>().Resolve();

でも、再生機能を将来つけるとして
行動を記録するにはコマンドをstring形式にして
インタプリタ自作した方がいいのかなと色々迷ってるわけですが。
0048デフォルトの名無しさん2015/03/28(土) 04:19:19.96ID:rHeuWUn1
ラムダ式って覚える必要ありますか?
0049デフォルトの名無しさん2015/03/28(土) 05:10:35.36ID:XdXZJLO5
>>47
30 の値の方を特殊化すればできるな
Wrapper<int> Do <TW>(int val) where TW:Wrapper<int>, new(){}
class Attack : Wrapper<int>{} …

またはこう?なんかカッコ悪いな
Wrapper<T> Do <TW,T>(T val) where TW:Wrapper<T>, new(){}
player.Do<Attack<int>, int>(10)

>>48
難しくないし、覚えられるなら覚えた方がいいと思うけど
0050デフォルトの名無しさん2015/03/28(土) 08:34:33.93ID:XL4G4jKx
>>49
とりあえず、基底クラスのobject型のValueにセットして
内部では継承クラスのT Valueを呼んでいるのでまぁいいかなと

問題の領域に特化させたDSL的な設計にしたいけど難しいですねー
0051デフォルトの名無しさん2015/03/28(土) 10:29:43.13ID:awG2XhMJ
Unityみたいにyield使えば?
オレオレDSLじゃなくて普通のC#で書けるよ
0052デフォルトの名無しさん2015/03/29(日) 00:26:58.50ID:HzHK9YV5
>>44>>45
ありがとう!!1週間ヘルプ読んで悩んでも出来なかったのが上手くいきました!!
しかし.NETって「Invoke」って言葉を便利に使いすぎじゃないですか?w
重要なメソッドであることが多いのに、単語から機能を連想出来ないですよこれw
0053デフォルトの名無しさん2015/03/29(日) 07:44:44.58ID:LAidhVxn
いやInvokeは原則「オブジェクト自体を関数とみなして呼び出すこと」だぞ
必ずしも対象がデリゲートとは限らないが、↑は常に一貫してる
0054デフォルトの名無しさん2015/03/29(日) 16:54:26.21ID:8wZbuSbW
static classのメソッドをクラスを指定せずに使うことはできますか?
.net3.5です。

static class GetTypeNameUtilty{
public static string GetTypeName(object obj){return obj.GetType().Name};
}

public class Test{

public string Name(){GetTypeName(this));

}
0055デフォルトの名無しさん2015/03/29(日) 17:40:00.73ID:LAidhVxn
無理
ていうかメソッドにするまでもなくtypeof(Test).Nameでいいだろ
C#の次のバージョンではstaticメソッドをusingしたりnameof(Test)で名前取れたりするようになるけど
0056デフォルトの名無しさん2015/03/29(日) 17:43:49.42ID:8wZbuSbW
Nameはあくまで例としただけです。
3.5じゃ無理なんですね。ありがとうございます。
0057デフォルトの名無しさん2015/03/29(日) 18:03:24.87ID:P2f6i8oL
全くの初心者なので教えてください。
C#でランダムな数値を出力させ、記憶させたいです。
流れとしては、ランダム出力(1~100)→記憶(※)→重複チェック(※)→重複あればランダムやり直し
みたいなものかと思っていますが、コードにするとなると※の部分がわかりません。
元も子もない解答はなるべく赦して下さい。C#でやらないとだめなのです。。。
0058デフォルトの名無しさん2015/03/29(日) 18:23:27.89ID:YlMqT9t8
>>57
Dictionary<TKey, TValue> クラス
0059デフォルトの名無しさん2015/03/29(日) 18:28:22.37ID:8pXrVLuT
System.Random
0060デフォルトの名無しさん2015/03/29(日) 18:35:21.57ID:dtm1ojMC
>>57
1~100の配列を用意
ランダム並べ替え

でいいだろそれ
0061デフォルトの名無しさん2015/03/29(日) 18:39:02.91ID:P2f6i8oL
>>60
重複しないようにするのが最重要なのです。
>>58
それをどのように使用すればいいですか?
ランダム出力したものをTValueの中に入れる感じでしょうか
0062デフォルトの名無しさん2015/03/29(日) 18:43:15.70ID:TxKUIO3l
そんな標準ライブラリの使い方ぐらい、ぐぐって自分で調べてみようよ
0063デフォルトの名無しさん2015/03/29(日) 18:45:58.47ID:60HKROvp
その前にスタックオーバーフローの方にも返信しようよ
0064デフォルトの名無しさん2015/03/29(日) 18:56:46.95ID:P2f6i8oL
>>63
すごい!よくわかりましたね
でもあそこはレベルが高すぎるようで無理です。
ここならちょうどいいかと思ったんですが
0065デフォルトの名無しさん2015/03/29(日) 18:58:38.44ID:U/seMwAy
舐めた返事だなお前
0066デフォルトの名無しさん2015/03/29(日) 19:02:21.39ID:P2f6i8oL
なめてるというか、ここ、初心者用って・・・
0067デフォルトの名無しさん2015/03/29(日) 19:04:46.39ID:dtm1ojMC
まああそこの回答は完全に質問の意図を読めてない回答があったからな

それはそうと1~100までの配列作ってランダムに並べ替えれば
重複チェックなんてするまでもなく絶対重複しないだろ

というかそういう回答もあっただろ
0068デフォルトの名無しさん2015/03/29(日) 19:22:38.43ID:TxKUIO3l
初心者用といっても、
何を調べたらいいかも分からないとかなら分かるけど、
教えてもらったことから自分で幾らでも調べられるものを、全部教えろな態度は
ここじゃなくても普通にどこでも嫌われることだ
0069デフォルトの名無しさん2015/03/29(日) 19:25:09.86ID:dtm1ojMC
回答があったのはteratailの方だった
0070デフォルトの名無しさん2015/03/29(日) 19:37:26.01ID:/j+kKb24
>>57
private int[] value = new int[100];
Random r = new Random()+1;
for (i = 0; i < 100; i++) value[i] = i;
for (i = 0; i <100; i++)
{
int temp;
int x = r.Next() % 100;
temp = value[i];
value[i] = value[x];
value[x] = temp;
}
0071デフォルトの名無しさん2015/03/29(日) 19:45:44.64ID:60HKROvp
掲示版にはマナーがあるんだよ

丸投げは嫌われる
あと、マルチポストは基本禁止だし、する場合はお互いのURLはって、進展があるたびに全部の掲示版に解決するまで報告するのがマナー
せめてもっと勉強して出直しますとか書いてスレッドを閉じてこい

それと、どのスレでもシャッフルしろって言われてるのを頑なに無視するなよ
「C# シャッフル」で検索すれば見つかるだろ
0072デフォルトの名無しさん2015/03/29(日) 19:46:28.32ID:dtm1ojMC
>>70
それ偏らない?
0073デフォルトの名無しさん2015/03/29(日) 20:10:22.24ID:LAidhVxn
偏るね
1,2ヶ月くらい前にこのスレで議論があったな
0074デフォルトの名無しさん2015/03/29(日) 20:18:25.75ID:U/seMwAy
あれを議論と言うのか?
「Fisher-Yates使え」以降の全てが蛇足だったろ
引っ込みつかない低脳の相手を数日続けやがって
0075デフォルトの名無しさん2015/03/29(日) 20:18:41.10ID:P2f6i8oL
すみませんでした、あまり掲示板のルールというかC#以外でも勉強不足でした。
さまざまな情報をくれた方ありがとうございます。
C#シャッフルで調べさせていただきました。やっぱり配列を53個用意して
それをシャッフルする方法が適当そうなのでそれでやろうと思います。
ありがとうございました
0076デフォルトの名無しさん2015/03/29(日) 20:21:19.77ID:YlMqT9t8
>>61
Dictionary<TKey, TValue>.ContainsKey メソッド
Dictionary<TKey, TValue>.Add メソッド
0077デフォルトの名無しさん2015/03/29(日) 20:26:41.14ID:YlMqT9t8
>>71
マルチポストは基本禁止については承服しかねます。
0078デフォルトの名無しさん2015/03/29(日) 20:44:21.93ID:tAPwtifx
>>77
だったらもう来るな
0079デフォルトの名無しさん2015/03/29(日) 21:02:34.75ID:jyVyOV8r
>>77
死ね
0080デフォルトの名無しさん2015/03/29(日) 21:17:31.38ID:YlMqT9t8
マルチポスト禁止なんてNetnewsの時代の禁止事項だろ。
クロスポストは転送容量食わないからOKで、マルチポストは転送容量食うから禁止ってやつ。

お前ら2chとStack OverFlow本家にマルチポストしてても怒らないだろw
0081デフォルトの名無しさん2015/03/29(日) 21:18:29.04ID:jyVyOV8r
排他制御しろってこと
マルチスレッドの基本だろが低能
0082デフォルトの名無しさん2015/03/29(日) 21:23:35.95ID:YlMqT9t8
>>81
ロック用のオブジェクトは何処に置くのだ?
2chでええんかw
0083デフォルトの名無しさん2015/03/29(日) 21:25:42.48ID:mwCO7lgi
>>54
.net3.5って拡張メソッド使えるんじゃね?
0084デフォルトの名無しさん2015/03/29(日) 21:25:50.59ID:jyVyOV8r
>>82
お前の腐った眼がクローズしますという自分の書き込みが反映されたのを見たらでいいよ
俺たちは優しいからそれで許す
0085デフォルトの名無しさん2015/03/29(日) 21:27:05.11ID:oTCwOtrh
dobonさんの掲示板とか見りゃ分かるけど、マルチポスト禁止なんて言うと平和になるどころか、
ただ人の揚げ足を取りたいだけの馬鹿の「マルチポスト報告」に正当性を与えてのさばらせて、
かえって利用者を辟易とさせて遠ざけるだけだな。
0086デフォルトの名無しさん2015/03/29(日) 21:44:01.13ID:ntezhUwh
黙って流せばいいのに承伏しかねるとかケンカ勝ってどうすんだゴミカス
0087デフォルトの名無しさん2015/03/29(日) 22:05:13.43ID:h1KiB+oP
マルチなんかしなくてもここの神達に質問したら大概わかるだろw
0088デフォルトの名無しさん2015/03/29(日) 22:09:41.54ID:60HKROvp
>>80
同じような答え書くのに何人も無駄な時間食うし、後から検索が不便だろ
0089デフォルトの名無しさん2015/03/30(月) 00:04:53.13ID:0KvTmfg7
>>85
掲示板ジプシーしてなきゃマルチポストなんて何の関係もないしね
0090デフォルトの名無しさん2015/03/30(月) 00:06:34.56ID:0KvTmfg7
>>86
News stationのマネしてみただけw
0091デフォルトの名無しさん2015/03/30(月) 01:34:34.22ID:1mrBbg0t
>>80
自分に都合のいい解釈しかしねえのなグズ。
0092デフォルトの名無しさん2015/03/30(月) 05:34:06.96ID:VBh0GDlX
クズゆえに
0093デフォルトの名無しさん2015/03/30(月) 09:00:51.61ID:Ov0GFE0z
初心者ですが質問させてもらいます
Windows Media Playerを起動して、動画を複数追加して、最初に選択したフルパスで再生したいのですが
リストに追加して再生までできてます。(リストの先頭が再生されますが・・・)
そこでPostMessageを使って、プレイリストに↓↓↓ENTERのように送りたいのですができません。
できれば、具体的なサンプルと詳しい解説付きで教えていただけないでしょうか
PostMessage(cWnd, 0x100, wParam, lParam);
↑のうち、cWndしか理解できてません。0x100は押す?
wParamは、なんのボタンかってことですか?
lParamは、完全に意味不明です・・・。

下に必要な部分だけコード貼りました
http://ideone.com/QiEISK
0094デフォルトの名無しさん2015/03/30(月) 09:56:11.93ID:EDBJT7pb
PostMessage
https://msdn.microsoft.com/ja-jp/library/cc410952.aspx
読め。

0x0100 → WM_KEYDOWN

あとはこっちのスレで遊んでもらえ

Win32API質問箱 Build11 [転載禁止](c)2ch.net
http://peace.2ch.net/test/read.cgi/tech/1418181169/

以上。
0095デフォルトの名無しさん2015/03/30(月) 17:24:24.12ID:+3/2Uksk
Win7@x64、VS2010、Framework4、画像がモノクロBitmap。
Winフォームで下記コードを実行すると、
RotateFlipTypeが"Rotate180FlipNone"のときに、
回転された画像の右端に黒いゴミ?が付くのですが、
同じ現象が発生する方、原因が分かる方、おりますでしょうか?

Image img = Image.FromFile(@"C:\test.bmp");
img.RotateFlip((RotateFlipType)comboBox1.SelectedIndex);
pictureBox1.Image = img;

※combobox1の項目はRotateFlipType列挙型の内容をいれています。
0096デフォルトの名無しさん2015/03/30(月) 20:58:30.77ID:0v66oFH5
自分.NET歴が長いんですが
MVCとか見たことありません。
勉強しておいた方がいいですか?
たまに経験あるか聞かれます。
あとlinqとやらもやっといた方がいいですか?
SQlならバッチリですが。
0097デフォルトの名無しさん2015/03/30(月) 21:02:35.35ID:mWFZLjtv
これは爆釣れですわ
0098デフォルトの名無しさん2015/03/30(月) 21:56:45.53ID:rhtY9z7j
Webアプリケーション開発に携わる予定がないならASP.NET MVCは知らなくてもよい。
だがLINQはいかなるアプリケーション開発でも知っておいた方がよい
0099デフォルトの名無しさん2015/03/31(火) 07:42:40.64ID:7FvkJziV
全然爆釣じゃないじゃないですか
0100デフォルトの名無しさん2015/03/31(火) 10:57:57.33ID:r/d8PES4
unityで使うc#の質問でも良いでしょうか?

ゲームオブジェクトに個別にidを振りたいです。
変数idを持たせてそこに番号を振るのでしょうが
idはint
オブジェクトはオブジェクト型

どこにどう振ったらいいのでしょうか?
0101デフォルトの名無しさん2015/03/31(火) 12:08:45.44ID:EiIz2HrV
まるっきりUnity固有の話なのでここでやり取りするのが適切かはわからんが
スクリプトを作ってその中にメンバ変数を作ってそこに振る。
取得する時はGetComponentする。
0102デフォルトの名無しさん2015/03/31(火) 12:45:52.66ID:PDuqT+XJ
しかしSEって仕事大変すぎないか?
テクニカルな部分は全然問題ないんだけど
人間っていう極めて不確定な要素を扱う部分の難しかっていうか・・・
自分のメンタルだったり、プロジェクトメンバだったり、上司だったり、世論だったり、クラインとだったり、クライアントのクライアントだったり・・・
おっとこれはマ板の話題か・・・ム板は理屈を追求出来るから本当にフロンティアだよ・・・何で人間の心ってこんなに面倒くさいんだろうな・・・
0103デフォルトの名無しさん2015/03/31(火) 12:47:06.97ID://GhI1bQ
>>101
すみません、該当板で聞くとプログラムの問題じゃねーか、と言われるもので。

それはクラス型変数を作ってインスタンスという意味でしょうか?

ID no = new ID();
と言う感じで入れていけばいいのかな?
0104デフォルトの名無しさん2015/03/31(火) 14:05:33.83ID:yvrxgcRM
自分みたいなカスが父親くらいの年のPGに指図して、
そいつらが出してきたゴミみたいなコピペグラムに頭抱えてるとき、
人生って何だろうと考えるよね
0105デフォルトの名無しさん2015/03/31(火) 14:37:30.51ID:EiIz2HrV
>>103
Unityの作法ではMonoBehaviourを継承したクラスを作って
それをゲームオブジェクトに貼り付ける、というのが一般的。
あとMonoBehaviourはゲームオブジェクトに貼り付ける以外のやり方で
インスタンス生成はできない。
つか、この辺てUnityの使い方の基礎だから何かチュートリアルやった方がいいよ。

独自のクラスを作ってIDとゲームオブジェクトを結びつける、というやり方もありだよ。
ただそういうクラスから例えばGameObject.Destroy()みたいなのを呼んだりするとエラーになったりする。
それを解決するような有料のプラグインもあるし今はフリー版で全機能使えるから
自分でプラグイン書いたりもできるとおもうけど。
0106デフォルトの名無しさん2015/03/31(火) 15:05:14.31ID://GhI1bQ
>>105
ありがとうございます。
いまいちはっきり分からないのは勉強不足だからですよね。

どういうwordで調べたら該当するのかもわからず。
いただいたヒントから少し調べてみます。
0107デフォルトの名無しさん2015/03/31(火) 15:49:00.74ID:EiIz2HrV
>>106
うん、この話がわからないってことはまったくUnityのことはわからない、
ってことだと思うしその段階でUnityの質問スレ行ってもとりあえず
チュートリアルやってからにしてくれ、ってなると思うよ。

まぁ元々プログラムやってる人だと従わなきゃならない作法が多すぎて
めんどくせー、とか不自由すぎる!ってなる部分はあると思うw
0108デフォルトの名無しさん2015/03/31(火) 16:43:34.03ID://GhI1bQ
>>107
たびたびありがとうございます。
チュートやる方が近道のようですね。

最後のスレちを許していただけるならもう一個だけ質問させてください。

そもそも何でidを振るかというと
多数あるprefabからランダムに選び出して表示させると言うのをやりたいからです。

これはやはりprefabにidを振ってrandomで抽出しかないですよね?
何かほかにありますか?
0109デフォルトの名無しさん2015/03/31(火) 17:05:09.04ID:EiIz2HrV
>>108
大体のUnityの作法に従う、という前提でいうと、

・そういうPrefabを元にしてオブジェクトをインスタンスする為の
MonoBehaviourを継承したクラス(スクリプト)を作ってカラのGameObjectに貼り付けとく。
・そのクラスにGameObject[] prefabsみたいなパブリック変数の
配列を作っておいてインスペクタ上でPrefabをドラッグアンドドロップして配置しておく。
・int i = Random.Range(0,prefabs.Length);とかでランダムの値出して
Instantiate(prefabs[i],posiiton,rotation)みたいにインスタンスを生成する。

とかそんな感じだと思う。
パス書いたストリングの配列置いといて(そのストリング配列をどこに書いておくか、
読んでくるか、という問題はまたあるけど)
Instantiate(Resources.Losd<GameObject>(pathes[i]),position,rotation);
みたいなやり方もあるけどね。その場合Resourcesってフォルダに
prefabを置いておく、とかの約束事はある。

インスペクタで配置する、とかもUnity使ってないと意味不明なんで
まぁとりあえずチュートリアルやってみて、って感じではあります。
0110デフォルトの名無しさん2015/03/31(火) 20:30:11.03ID:FZhIJWR5
idを降るにもランダムで取り出すにもUnity必要ねーんだよ。
何が解らないのか解ってんの?
0111デフォルトの名無しさん2015/03/31(火) 21:35:52.69ID:p39Sv7yq
>>109
ありがとうございます。
できましたたたたた!
0112デフォルトの名無しさん2015/04/01(水) 10:44:09.59ID:SOMpR2yO
初心者のくせにレベル高い質問する奴が多くて凹む
俺なんてもう3年やってるのに未だにデリゲートがわからないわ
0113デフォルトの名無しさん2015/04/01(水) 11:14:15.35ID:1gRtJvyV
デリゲートってよくわからないけども、
配達してくれる門のことでしょ?
0114デフォルトの名無しさん2015/04/01(水) 13:30:47.74ID:97llw635
if (!xxxxx){
このxxxxx変数の頭に付いてる!はどういった意味なのでしょうか?
0115デフォルトの名無しさん2015/04/01(水) 13:37:04.21ID:uYs13Xxh
! は否定演算子。Boolean型につく。trueならfalseに、falseならtrueに。
0116デフォルトの名無しさん2015/04/01(水) 13:40:03.75ID:97llw635
そうだったんですね。
ありがとうございます。
0117デフォルトの名無しさん2015/04/01(水) 15:39:21.86ID:w3sSKfcl
そのレベルでいちいち質問してるようじゃ前途多難だなw
煽り抜きの真面目な話
0118デフォルトの名無しさん2015/04/01(水) 17:19:12.96ID:uYs13Xxh
Cはおろかjavascriptも見たことないってことだからなぁ
0119デフォルトの名無しさん2015/04/01(水) 17:32:30.70ID:wuQ+3DlS
>>114
いちど演算子一通りちゃんと勉強しなおした方がいいマジで
0120デフォルトの名無しさん2015/04/01(水) 23:00:59.02ID:/C37Nzx7
Boolean型
そんな型があることを初めて知った
0121デフォルトの名無しさん2015/04/01(水) 23:08:37.14ID:0S/G9O5Z
最近プログラム始めました的な人なら仕方ない
0122デフォルトの名無しさん2015/04/02(木) 10:37:00.56ID:AeXs8juk
boolがあるのにわざわざBooleanを追加した理由ってあるの?
0123デフォルトの名無しさん2015/04/02(木) 10:52:55.82ID:phMPzoKJ
System.Boolean → .net frameworkの型
bool → C#言語の組み込み型

>bool キーワードは、System.Boolean のエイリアスです。
0124デフォルトの名無しさん2015/04/03(金) 19:02:33.95ID:muAurvJ7
MemoryStreamの扱い方について教えていただけないでしょうか。

次のようにMemoryStreamを宣言した場合
配列のように各MemoryStream(m1〜3)を格納出来ましたが
最初に宣言だけして後から格納するにはどうしたら良いでしょうか。

MemoryStream[] Ms = { m1, m2, m3 };

合っているかどうかわからないのですが、次のようには
宣言できても、後から格納が出来ず悩んでいます。
MemoryStream[] Ms = new MemoryStream[]{};
0125デフォルトの名無しさん2015/04/03(金) 19:52:25.48ID:JflSpfIv
MemoryStream云々じゃなくて
クラス配列は作成しただけだと中身がnullだから
0126デフォルトの名無しさん2015/04/03(金) 19:55:19.03ID:rgIwRDB+
>>124
>MemoryStream[] Ms = new MemoryStream[]{};

長さ0の配列確保してるから格納できないのは当たり前。
0127デフォルトの名無しさん2015/04/03(金) 19:55:45.64ID:JflSpfIv
そこまで高度な話ですらなかった
newしてる配列で長さ指定してないから空配列になってるだけじゃねえか
0128デフォルトの名無しさん2015/04/03(金) 20:48:16.74ID:z3znbzKC
>>124
var mss = new MemoryStream
[3];
mss[0] = m1;
mss[1] = m2 ;
mss[2] = m3;
0129デフォルトの名無しさん2015/04/03(金) 20:56:17.12ID:muAurvJ7
なるほど!!自分はアホでした・・・
本当にありがとうございました!!
0130デフォルトの名無しさん2015/04/03(金) 21:26:33.93ID:Y/S0Zj5n
pdbファイルはデバッグ時にどのように役立っているのでしょうか
0131デフォルトの名無しさん2015/04/03(金) 21:27:25.80ID:bzwtJx8O
Listの内部実装ってどうなってるんですか?

適当なキャパの配列を内部で持って、
addされたindex以上のは取得できないようにしてる感じでしょうか?
0132デフォルトの名無しさん2015/04/03(金) 21:34:44.85ID:1XPpXi9x
>>130
変数の名前や、ILの命令がソースコードのどこに対応するかなど
コンパイルによって失われてしまう情報を持っている

>>131
そう
追加するたびに配列作り直してたら効率悪いので
内部の配列が溢れると倍々ゲームで配列を拡大する
リストのサイズは配列のサイズとは別に仮想的な値として持っていて、
インデクサの中で インデックス < サイズ であることをチェックしてる
0133デフォルトの名無しさん2015/04/04(土) 00:59:18.35ID:0jqle4n2
>>132
ありがとうございます。
c#の基本機能を極めてしまったので、更に深い知識を得たくて。
ところでなぜ、内部実装を知っているんですか?
.netで用意されているクラスなど覗いても
実装まで見れませんよね?

また、ちょくちょくスレの方々が例えばスタックとかヒープとかどーのこーの言ってるんですが、そういう知識はどこで得たらいいんでしょう?
参考書読んでもそんな言葉は一言も出てこなくて。
0134デフォルトの名無しさん2015/04/04(土) 01:27:38.82ID:QQ0bNHZo
.NetFrameworkはオープンソースだよ
0135デフォルトの名無しさん2015/04/04(土) 01:36:14.76ID:iZ1TokMe
>>133
スタックだのヒープだのはデータ構造の名前。
そんなご大層なものじゃないからアホじゃなきゃググれば30分で両方理解できる。
0136デフォルトの名無しさん2015/04/04(土) 05:50:33.63ID:nyOh/zuP
>ヒープだのはデータ構造の名前

へー
0137デフォルトの名無しさん2015/04/04(土) 08:14:03.67ID:9MLdMtB3
http://referencesource.microsoft.com/

これテンプレに入ってないんだな
ネイティブ読んでる奴以外は実装が分かるよ
0138デフォルトの名無しさん2015/04/04(土) 10:01:48.66ID:420of61P
C# プログラミングリファレンス
◆スタックとヒープ
https://msdn.microsoft.com/ja-jp/library/cc406736.aspx
0139デフォルトの名無しさん2015/04/04(土) 11:03:33.41ID:PeaowgPm
>>133
スタック、ヒープってのは自分でメモリー管理するc言語の本には出てる。
c#の本だと構造体、クラスあたりの説明にちょこっと出てくるくらいかな。
0140デフォルトの名無しさん2015/04/04(土) 12:26:14.95ID:58QdE54y
ほっぺたバンバンスタックスタック
おしりバンバンヒープヒープ
アウアウアゥッー!!1!
0141デフォルトの名無しさん2015/04/04(土) 12:32:52.33ID:pfd5O7mf
>>138
そのヒープは>>135のヒープとは違うヒープだろ
区別がついてない?
0142デフォルトの名無しさん2015/04/04(土) 14:56:52.84ID:XlefrRJp
スタックもヒープもメモリ領域の用語とデータ構造の用語の両方で使用されるので
133の見たレスがどちらだったのかは不明。
0143デフォルトの名無しさん2015/04/04(土) 17:50:27.11ID:HfZ/zp/8
明らかにメモリの話と思われる
0144デフォルトの名無しさん2015/04/04(土) 19:16:35.42ID:l5USRqeg
美しい人生よ 限りない喜びよ この胸のときめきを あなたに
0145デフォルトの名無しさん2015/04/04(土) 19:54:57.14ID:G/mZHSfw
>>142
どっちも糞も同じ物だって。

スタックについては言うまでもないと思うが、ヒープだって貸し出すメモリーを
ヒープで管理するからヒープでしょ。違うの?
0146デフォルトの名無しさん2015/04/04(土) 20:02:17.58ID:JKQhG6t4
>>144
愛のメモリーの話と思われる
0147デフォルトの名無しさん2015/04/04(土) 20:22:04.15ID:vicBGV37
データ構造を含めた管理方法の話と
OSが(その方法で)管理してる領域の使い方の話
同じ話ではないので、どっちの話かちゃんと区別して下さい
0148デフォルトの名無しさん2015/04/04(土) 20:26:11.00ID:Ud1vHqFT
>>145
ヒープで管理するからヒープメモリだというソースは?
0149デフォルトの名無しさん2015/04/04(土) 22:52:11.93ID:PeaowgPm
あなたにあげる、あったかいんだから
0150デフォルトの名無しさん2015/04/05(日) 01:03:26.98ID:MMhMc3sY
String と stringの違いはなんでしょうか?どう使いわけるのですか?
0151デフォルトの名無しさん2015/04/05(日) 01:13:21.04ID:CUClbhMi
>>150
わざとやってないか?w>>122
0152デフォルトの名無しさん2015/04/05(日) 01:40:29.52ID:X2BYrh95
varの存在意義がわからない…orz
0153デフォルトの名無しさん2015/04/05(日) 02:12:28.83ID:dDi9RE1B
てかデフォで型推理>変換まで自動化すべきだよね
明示的に書いたときだけそっち優先でなんの問題があるのか
0154デフォルトの名無しさん2015/04/05(日) 05:42:15.21ID:rnU7gpAt
存在意義が分からないと何もできない奴を粛正して回る方が先
生きるのにも向いてないから、この世から解放してやる必要がある
0155デフォルトの名無しさん2015/04/05(日) 08:11:03.64ID:KZ+Fa3I0
>>152
linqやってみれば?
varが無ければlinqなんてやってられないよ
0156デフォルトの名無しさん2015/04/05(日) 09:57:13.71ID:oXAovg9x
varなかったら1ヶ月で一日分ぐらい時間ロスするだろ
0157デフォルトの名無しさん2015/04/05(日) 09:58:11.03ID:850UAxcu
linqに限らず変数宣言で型書くの面倒だろ?
0158デフォルトの名無しさん2015/04/05(日) 10:27:03.47ID:ITW+JsH9
>>152
馬鹿長いクラス名のヤツがvarだとスッキリ書ける。
0159デフォルトの名無しさん2015/04/05(日) 10:49:59.34ID:Hju6Pfi4
>>156
さすがにそこまでコードをタイプしてる時間の割合が開発作業の多くを占めるというのは
やり方か職場に問題がある
0160デフォルトの名無しさん2015/04/05(日) 14:18:23.58ID:Qojgmlj4
とはいえC#では強力なIDEのおかげでvarの利用によるメリットは薄れる傾向にあると思われる
0161デフォルトの名無しさん2015/04/05(日) 14:25:07.45ID:kIv1b/v6
もともと >>155 が言ってる理由で作られたんじゃなかったっけ。
自分は並べて変数宣言するときに見やすくなるから使うこと多いんだけど。
0162デフォルトの名無しさん2015/04/05(日) 18:28:32.68ID:WDwqsM6E
>>160
入力は IDE で楽になったけど、var のあるなしでコードの見易さが全然違うよ
0163デフォルトの名無しさん2015/04/05(日) 19:08:34.59ID:xq3Tbw2G
下みたいな事をしたいです。
どうしたらいいでしょうか?


class Oya { ...
class KoA : Oya { ...
class KoB : Oya { ...

---

class Test {

 public IEnumerable<KoA> AAA { get... }
 public IEnumerable<KoB> BBB { get... }

 public IEnumerable<Oya> OOO {
  get {
   this.AAAとthis.BBBをくっ付けたい。←これがやりたいこと!
  }
 }
0164デフォルトの名無しさん2015/04/05(日) 19:22:50.56ID:Qojgmlj4
return AAA.Concat(BBB);

//varを使ってみたかった
foreach(var koa in AAA)
  yield return koa;
foreach(var kob in BBB)
  yield return kob;
0165デフォルトの名無しさん2015/04/05(日) 19:24:07.67ID:yZ2P911Q
linq 結合 とか
linq つなげる とかでググれば出てきそうなもんだが
concat
0166デフォルトの名無しさん2015/04/06(月) 22:48:02.56ID:/TOJAy2n
式木を約分するフリーのライブラリとかありませんか?
Expression<Func<int, int>> ex = x => x / x;
を x => 1 に
Expression<Func<double, double>> ex = x => Math.Tan(x) / Math.Sin(x) * Math.Cos(x);
を x => 1.0 に約分してくれるようなものです
0167デフォルトの名無しさん2015/04/06(月) 23:17:20.28ID:2OkzYB/B
LinQとかラムダとか修行用のサイトありますか?
0168デフォルトの名無しさん2015/04/06(月) 23:20:52.04ID:7ScfZwT0
徹底的にハードな
0169デフォルトの名無しさん2015/04/07(火) 08:10:27.45ID:qktNI4KL
まず宇宙船を作ります
0170デフォルトの名無しさん2015/04/07(火) 08:21:24.60ID:i2VysPJZ
修行用で良かったのは未確認なんたら
0171デフォルトの名無しさん2015/04/07(火) 13:02:48.89ID:W5P0BmT+
>>170
ありがとうございます。
0172デフォルトの名無しさん2015/04/07(火) 14:01:15.57ID:JncqmOow
>>166
数式文字列に変換してMaximaに丸投げ
0173デフォルトの名無しさん2015/04/07(火) 22:04:32.95ID:mIn1sIzy
>>172
おお!こんなのがあったのですね!
素晴らしいです!助かりました
0174デフォルトの名無しさん2015/04/07(火) 23:00:27.85ID:jNIjIDyq
データタイム型で取り出した日時データをDateGridviewに出力する際、string型に変換せず、そのまま日時データの性質を持たせて出力することはできませんか?
0175デフォルトの名無しさん2015/04/07(火) 23:32:05.01ID:xSM6sG75
WPFというかXAML使えば
0176デフォルトの名無しさん2015/04/07(火) 23:32:35.89ID:r1bOWFW1
icaclsで取得したデータをC#で見やすく加工したいのですが、
以下のように、フォルダパスとユーザ情報が一行に表示されており、
見難くて困っております。

C:\Program Files NT SERVICE\TrustedInstaller:(F)

再帰的に、以下のように加工する方法はあるでしょうか?
C:\Program Files
NT SERVICE\TrustedInstaller:(F)

区切りがスペースである時点で、解決は望み薄かと思いますが、
よろしくお願いします。
0177デフォルトの名無しさん2015/04/08(水) 08:15:48.75ID:o76YjVnN
そんなコマンドあるの初めて知ったので試してみたけど、
2行目以降、インデントされてるからその開始位置を1行目に適用したらいいんじゃない?
2行以上表示されるファイル/フォルダじゃないとダメだけど
0178デフォルトの名無しさん2015/04/08(水) 08:40:02.89ID:KM862bWm
>>175
は?
0179デフォルトの名無しさん2015/04/08(水) 09:14:09.25ID:dGXcCm+u
>>178
WPFならUIにどんなオブジェクトでも持たせられ、表示方法はDataTemplateで自由自在。
0180デフォルトの名無しさん2015/04/08(水) 09:15:46.89ID:Vs/ZCfgh
へ?
0181デフォルトの名無しさん2015/04/08(水) 13:53:35.14ID:b4lzJxfB
>>174
そのようなDataGridViewColumnとDataGridViewCellを作ればよい
0182デフォルトの名無しさん2015/04/08(水) 14:26:53.14ID:KM862bWm
>>181
その作り方を聞いてるんじゃないの?
0183デフォルトの名無しさん2015/04/08(水) 16:36:33.11ID:DdfnKxD/
ソフトにホットキーを登録する方法を調べていたところ下記のコードで登録できるようですが
ttp://smdn.jp/programming/tips/activate_window_by_hotkey/

これは予め数種類の動作を用意した設定フォームなどから
対応するホットキーをユーザ側で自由に設定するなどということは可能なのでしょうか?
0184デフォルトの名無しさん2015/04/08(水) 18:00:13.85ID:dsfuUZsQ
可能です
0185デフォルトの名無しさん2015/04/08(水) 18:19:20.60ID:DdfnKxD/
ありがとうございます。
0186デフォルトの名無しさん2015/04/09(木) 12:10:34.50ID:y3dmdorc
デバッグで動作中に配列にカーソルを合わせると中の値を見ることが出来て、
右クリックで配列の中の一つの値をコピーしてメモ帳等に貼り付けることは出来ましたが、
配列の中身を全て一括してコピーする様なことって出来ますか?
0187デフォルトの名無しさん2015/04/09(木) 14:27:07.51ID:LaD8e8U9
listViewの指定のカラムにサブアイテムを追加する方法を教えて下さい。
カラム0には初めから項目が追加されています。

カラム0 カラム1 カラム2
項目0
項目1
項目2

ListViewItem item = new ListViewItem();
if (item.Selected)
{
  item.SubItems.Add(追加項目);
}
とすると、選択項目のカラム1にサブアイテムが追加されてしまいますが、
カラム1には何も追加せずカラム2だけにアイテム追加するにはどうすればよいでしょうか。
0188デフォルトの名無しさん2015/04/09(木) 17:55:07.19ID:3KIThUPC
そのコードでは何も起きないと思うが。。

item.SubItems.Add((string)null);
item.SubItems.Add(追加項目);
0189デフォルトの名無しさん2015/04/09(木) 18:57:39.19ID:jbEL90kz
>>186
イミディエイトウィンドウでstring.Join(",", arr)とか
0190デフォルトの名無しさん2015/04/09(木) 19:24:36.73ID:y3dmdorc
>>189
見ることが出来ました!
ありがとうございます
0191デフォルトの名無しさん2015/04/09(木) 20:18:39.40ID:LaD8e8U9
>>188
上手く行きました。どうもありがとうございました。
0192デフォルトの名無しさん2015/04/11(土) 04:38:08.62ID:WjVyXuhP
stringにShift-JISの文字列を入れて(もちろん8ビットコードは上位0です)

byte[] sb = Encoding.GetEncoding("Shift-JIS").GetBytes(res);
byte[] ub = Encoding.Convert(Encoding.GetEncoding("Shift-JIS"), Encoding.Unicode, sb);
string str = Encoding.Unicode.GetString(ub);
textBox1.AppendText(str);

とやったのですがどうしてもTextBoxの文字が化けてしまいます
これを化けずに表示するにはどうすればいいのでしょうか?
0193デフォルトの名無しさん2015/04/11(土) 06:10:15.82ID:2NJz6esb
>>192
C#はパールじゃない
>stringにShift-JISの文字列を入れ
などということが出来ないことを
まず理解します
0194デフォルトの名無しさん2015/04/11(土) 12:28:56.12ID:WjVyXuhP
>>193
レスありがとうございます
実は

res = await client.GetStringAsync(uri);

というのを実験してて、このページがたまたまShift-JISでエンコードされているため
resというstringにShift-JISで入って行ってしまうのです

Clipboard.SetText(res);

でクリップボードにコピーしてFree Clipboard Viewewで見ても(Windows8.1なので)
ちゃんとShift-JISで入っているのが分かります

で、このままTextBoxに入れても当然化けるので、何とかUnicodeに変換したいと
思い、>>192のようなコードを何通りか試してみたのですが、どうしても駄目です

unsafeを使って8バイト部分を切り詰めてから変換しても駄目でした

このままだと、Shifit-JISで書かれたページがC#で扱えない事になってしまうので困っています
0195デフォルトの名無しさん2015/04/11(土) 12:33:12.28ID:N1524vgj
いや何でStringにShift-JISを入れる(確実にその時点で壊れる)のが前提なんだ
WebClientに文字コードを指定するか、GetStringじゃなくて生データで受けてからEncodingで変換しろ
0196デフォルトの名無しさん2015/04/11(土) 12:39:39.96ID:2NJz6esb
byte[] sjisData =〜; //オリジナルのSJISデータ
var s = System.Text.Encoding.GetEncoding(932).GetString(sjisData);
textBox1.Text = s;

これ以上に複雑な処理が要るとは思えないのだが
0197デフォルトの名無しさん2015/04/11(土) 12:44:25.90ID:WjVyXuhP
>>195
それでやってみます
しかしどこかにアクセスする前にそのページのコードを知らなければならない前提になって
しまいますよね?
C#でブラウザとか巡回ソフトを作る時に困るような気がしませんか?

>>196
それもやってみたけど化けるのです
TextBoxに入れた時点で化けるのかな?
0198デフォルトの名無しさん2015/04/11(土) 12:48:02.02ID:N1524vgj
>>197
WebClient.GetStringが返すのはそのままのデータではなく.NETの内部表現に変換された文字列
生データが欲しければOpenReadやDownloadDataなどを使う
0199デフォルトの名無しさん2015/04/11(土) 12:55:21.61ID:2NJz6esb
>>197
やりたいことはわかった。
ストリームから読み込んだ内容によって「932」のところを調整する。
http://ideone.com/THGhsl
0200デフォルトの名無しさん2015/04/11(土) 13:08:01.63ID:WjVyXuhP
>>198
asyncと合わせて使う方法が分かりません

>>199
0201デフォルトの名無しさん2015/04/11(土) 13:08:20.25ID:WjVyXuhP
間違えて書き込んでしまいました

>>199
ありがとうございます
試してみます
0202デフォルトの名無しさん2015/04/11(土) 13:09:42.07ID:zkEb8/z0
>>200
>>194はSystem.Net.WebCllent.GetXxxxTaskAsyncだよ
AsyncでなくTaskAsyncのほう
0203デフォルトの名無しさん2015/04/11(土) 13:10:36.81ID:zkEb8/z0
意味不明な書き込みした
忘れて…
0204デフォルトの名無しさん2015/04/11(土) 19:51:34.35ID:5aZfU8Xj
引数や戻り値を無視したデリゲートが欲しいのですがどうすればいいでしょうか?

ただし、ラムダなど匿名関数にして包んでしまうと
Method.Targetがnullになってしまうため不可です
0205デフォルトの名無しさん2015/04/11(土) 20:27:42.64ID:QshWWTDZ
>>204
日本語で
0206デフォルトの名無しさん2015/04/11(土) 20:40:46.85ID:9YYniVXr
>>204
言語仕様上はできないので自分でラッパークラスを作る
0207デフォルトの名無しさん2015/04/12(日) 02:54:52.11ID:5OORX/9Y
>>199
遅くなって申し訳ありません

ideoneにupされたコードを参考に修正したら、無事文字化けせずに表示されました
ちゃんと非同期処理もうまく動きました
ありがとうございました
0208デフォルトの名無しさん2015/04/12(日) 11:34:48.05ID:gc/OPt7/
>>206
やっぱ、コンストラクタでactionやfuncのジェネリクスを地道に打ち込む感じですかね。
0209デフォルトの名無しさん2015/04/12(日) 12:28:59.28ID:3L3DeY1H
うぉぉ、Action<object>にstirng引数の関数渡せないんか
0210デフォルトの名無しさん2015/04/12(日) 12:51:51.07ID:NPOoBmCn
Targetだけ覚えておいて全部ラムダで囲って呼び出したら?
0211デフォルトの名無しさん2015/04/12(日) 13:48:59.11ID:FhidqGt6
横からすみません
今の問題はどのようなことをしたいときに起こるものなんですか?
意味がまったくわかりません
0212デフォルトの名無しさん2015/04/12(日) 14:04:25.14ID:gc/OPt7/
デリゲートをコマンドに変換したいとき
0213デフォルトの名無しさん2015/04/13(月) 00:12:42.70ID:+PsW13C8
デリケートをオマンコに変態したいとき
0214デフォルトの名無しさん2015/04/13(月) 00:23:34.26ID:z+E8ZIbf
(嘆息)
0215デフォルトの名無しさん2015/04/13(月) 15:48:35.13ID:EA+gxsys
初歩的な質問失礼します
ListにいくつかのClassのインスタンスをAddします(0〜5個)
List内に1個以上要素が存在する場合、List内で最も「Class内のint変数a」が最も高いものの「Class内のbool変数bをtrue」
それ以外の全ての「Class内のbool変数bをfalse」にしたいと考えています。
どのようにすればすんなりいくでしょうか?

質問内容で言葉の使い方が間違ってるとかあったら遠慮なくご指摘ください><
0216デフォルトの名無しさん2015/04/13(月) 16:16:11.90ID:Y8nurpVH
すんなり作れば、すんなり行くんじゃないかな?(´・ω・`)
0217デフォルトの名無しさん2015/04/13(月) 16:37:53.44ID:EA+gxsys
>>216
ごめんなさい、そのすんなりの作り方がわからなくて><
0218デフォルトの名無しさん2015/04/13(月) 16:46:31.94ID:Y8nurpVH
なぜ?やりたいことがわかっているんだから、後は実装するだけだよね?(´・ω・`)
0219デフォルトの名無しさん2015/04/13(月) 16:49:16.63ID:EA+gxsys
>>218
ifとelseを大量に使う方法しか思いつかず・・・
もっといいやり方があるのではないかと思いまして
0220デフォルトの名無しさん2015/04/13(月) 17:38:30.84ID:5hebPT5V
>>215
「Class内のbool変数b」 をリストのアイテムに実装するのがおかしい。

aの値が最も大きいアイテム(またはそのインデックス)を返すプロパティを
リスト側に実装すべし。
0221デフォルトの名無しさん2015/04/13(月) 17:47:36.06ID:M8eWuXNL
HttpClientの使い方がわかりません。
application/x-www-form-urlencodedのコンテンツを送信する時は、
FormUrlEncodedContentのインスタンスを生成して、
HttpRequestMessageのContentプロパティにセットして、HttpClient.SendAsyncで
送信するというのはわかりました。
application/x-www-form-urlencodedを受信する時はどうすればいいのでしょうか?
HttpResponseMessage.Contentプロパティってどんな型になってるのでしょうか??
0222デフォルトの名無しさん2015/04/13(月) 18:17:32.74ID:JRfQOzLD
>>215
var max = lst.Max( foo => foo.a );
lst.ForEach( foo => foo.b = foo.a == max );
0223デフォルトの名無しさん2015/04/13(月) 19:50:10.03ID:EA+gxsys
>>220>>222
ありがとうございました!
ぜひ参考にさせていただきます
0224デフォルトの名無しさん2015/04/13(月) 20:12:54.36ID:80ZWwoRi
非同期という罠
0225デフォルトの名無しさん2015/04/13(月) 22:27:54.10ID:061o+tQw
>x-www-form-urlencodedを受信する時

どこの馬鹿がそんなアホなWebサービス作ったのか
0226デフォルトの名無しさん2015/04/13(月) 22:31:21.89ID:jHGDuuwZ
面倒くせえなw
0227デフォルトの名無しさん2015/04/13(月) 23:51:38.86ID:80ZWwoRi
linqのFirstで取り出した要素が何番目かってどうやったらわかるんですか
0228デフォルトの名無しさん2015/04/14(火) 00:39:01.10ID:SPY1eY+7
Selectを1個かましてインデックスを含めた匿名型を作れ
0229デフォルトの名無しさん2015/04/14(火) 00:43:00.48ID:i+z5zUTq
どこぞのQAサイトからのコピペ、
こんな感じ

int firstItem = someItems.Select((item, index) => new
{
ItemName = item.Color,
Position = index
}).Where(i => i.ItemName == "purple")
.First()
.Position;
0230デフォルトの名無しさん2015/04/14(火) 02:02:27.32ID:LMD+MjqV
なんかもう、普通にループまわしたほうが良いな。
0231デフォルトの名無しさん2015/04/14(火) 07:45:57.06ID:TlfZ+vKF
Whereはいらないだろ
0232デフォルトの名無しさん2015/04/15(水) 00:53:43.91ID:Hi6L8DOP
遅延評価を使ってこうしたらどうだ?
https://ideone.com/u9awUW
0233デフォルトの名無しさん2015/04/15(水) 02:03:59.97ID:9EAsN0Ne
> ++idx < 0 ? false : r == 6

こんなかきかたってメジャーなの?
短絡評価じゃだめなの?
0234デフォルトの名無しさん2015/04/15(水) 04:58:21.11ID:Q89pzmWa
三項演算子は短絡評価の一種
0235デフォルトの名無しさん2015/04/15(水) 07:00:34.50ID:UWt/5KU9
LINQの中で副作用とかアホか
0236デフォルトの名無しさん2015/04/15(水) 07:10:56.14ID:YxWtsS2r
副作用(キリ
もいらんて
徹夜明けでイライラしてんのか?
0237デフォルトの名無しさん2015/04/15(水) 09:37:41.73ID:d4qHhBeu
>>233
短絡評価関係ないし
>>232 は論理式に弱いんだろ

0 <= ++idx && r == 6
0238デフォルトの名無しさん2015/04/15(水) 15:07:25.01ID:0mnnTt38
すみませんどなたか分かる方教えて頂けませんか

以下のような列挙型で検索を行った結果を受けて再検索するんですが
今のままでは、初回に検索結果が無いにも関わらず余計な候補がでます
初回に「スクリーニングの結果」を表示させない方法または選択すると
エラーを表示させるにはどういう方法があるでしょうか

[EnumDesc(typeof(FilterType))]
internal enum FilterType {
...........,
[EnumValue(Description="お気に入りのフォルダ")] Favorite,
[EnumValue(Description="スクリーニングの結果")] LastResult
}

因みに検索のフィルター部分は以下の様になっています(これだけでは不十分でしょうが)


...........
else if (filter == FilterType.LastResult) {
SystemTradingResult tr = Env.LastScreeningResult;
if (tr == null) return null;
so.BrandEnumerator = new BookmarkedBrandLastEnumerator();
}
else {
so.BrandEnumerator = new FilteredBrandEnumerator(filter);
}
return so;
}
0239デフォルトの名無しさん2015/04/15(水) 15:50:09.58ID:LV3YShby
列挙型の規定値 == 0ってことは理解してるよね?
0240デフォルトの名無しさん2015/04/15(水) 17:10:11.61ID:0mnnTt38
初心者なので理解してません
0241デフォルトの名無しさん2015/04/15(水) 18:00:17.47ID:NbC8SVHD
潔し
0242デフォルトの名無しさん2015/04/16(木) 07:52:34.70ID:Kb7qg/D7
decimalって最後にmつけないと何か不具合ありますか?
0243デフォルトの名無しさん2015/04/16(木) 08:16:42.39ID:n/Sv94h6
小数部が0じゃない場合は誤差が出るかも
0244デフォルトの名無しさん2015/04/16(木) 11:57:15.12ID:ReE6ntDB
>>243
つけるにこしたことないんですね。
ありがとうございます。
0245デフォルトの名無しさん2015/04/16(木) 18:56:07.17ID:MVZGc2ae
>>242
@IT:.NET TIPS 数値のデータ型を明示的に指定するには? - C# VB.NET
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/155numtype/numtype.html

>>243
decimalで誤差ってあるんだっけ?
0246デフォルトの名無しさん2015/04/16(木) 19:33:02.81ID:g8NZq1YF
書いてみてコンパイルエラーの内容読めば
質問するまでなくわかるだろ
decimal d1 = 0;
decimal d2 = 0.9;
decimal d3 = (decimal)0.9;
0247デフォルトの名無しさん2015/04/16(木) 23:24:43.30ID:6FA55p9e
数値リテラルにサフィックスつけなかった場合にはintかdouble。

なんだけど、.NETがリテラルをうまく解釈しちゃうんじゃないか?なんて疑問がよぎったが、floatの時必須だしそんなことないか...
0248デフォルトの名無しさん2015/04/17(金) 00:16:06.36ID:vRmsAur5
整数リテラルならdecimalに収まる範囲であれば全く同じだろうな
doubleやfloatから暗黙変換ができないのは誤差が生じうるから
0249デフォルトの名無しさん2015/04/18(土) 13:40:14.45ID:zx0WrgkA
明日、基本情報の試験を受けますが、午後問題のアルゴリズムを
勉強していると、配列のソートとかラムダ式一発で書けるのに、
アルゴリズムを考える必要ってあるのかなと疑問に感じています。

配列のソートアルゴリズムを、C#の仕事で書かれた方って、
いらっしゃるのでしょうか?
0250デフォルトの名無しさん2015/04/18(土) 13:49:24.56ID:3v7Rv0Mr
>>249
c#はオブジェクト指向だから手続型のアルゴリズムの勉強なんて不要って考える人?
0251デフォルトの名無しさん2015/04/18(土) 13:50:33.61ID:pSroTT2+
実際に自分で書くことはまずないが、プログラミングセンスのない奴をふるいにかけるという意味では必要
ソート書ける奴と書けない奴とじゃアルゴリズムなんて全く使わないような業務アプリにおいてもコードの質に雲泥の差がある
0252デフォルトの名無しさん2015/04/18(土) 13:51:19.39ID:tEjbpLn5
不要だな。
思考のトレーニングぐらいにはなるかも知れんが
0253デフォルトの名無しさん2015/04/18(土) 13:54:08.36ID:GSM8RxJz
書けるかどうかというより、どういうアルゴリズムか知っていれば
適切に使い分けることが出来るからな
0254デフォルトの名無しさん2015/04/18(土) 14:06:30.50ID:TNGwH1Lz
そもそも基本情報自体要らねえけどな
ってのは禁句なのか
そんなもん評価するところなんて悪い意味でたかが知れてる
0255デフォルトの名無しさん2015/04/18(土) 14:15:04.14ID:pSroTT2+
コーダーとして最低限使えるかの目安としては有効だと思うけどな
本当に全くできない奴っているし
上流の方だと「基本情報なんか簡単でしょ? その知識が必要かどうかはともかくそれくらい取れないバカは要らん」という感じ
0256デフォルトの名無しさん2015/04/18(土) 14:16:44.56ID:TNGwH1Lz
あれを目安にするってすごいな
何の目安だろ
0257デフォルトの名無しさん2015/04/18(土) 14:26:28.22ID:pSroTT2+
・勉強ができる
・日本語が読める
・考えて答えを出す作業を数時間続けられる
これだけでも十分意義があるだろ
別に情報関係の試験である必要はないが、どうせ勉強するならちょっとでも業務に関係ありそうなことが望ましいのと
単に受けてる人が多いから基本情報なだけ
0258デフォルトの名無しさん2015/04/18(土) 14:30:42.29ID:MbUUIklr
今の人は知らないかも知れないけど10年20年前は
情報処理試験は最低限取らなきゃいけないみたいな風潮があった
老人は今でもそれが当たり前だと思ってる
0259デフォルトの名無しさん2015/04/18(土) 14:59:31.90ID:CjEYFJEG
30年前に一種取ったけど、特に業務に役立ったことはなかったな
資格手当がうまかったくらいだが、今はその手当ても廃止されちまった
0260デフォルトの名無しさん2015/04/18(土) 15:35:21.01ID:yg0oEU7l
一種二種DBNWセキュリティ持ってるけど手当てとか直接の利益は難しいね。
でも、入札案件とかISMS絡みでは名指しで仕事来るよ。
ちょっとやれば取れる資格なのに取らないなんて、、、って思う。
0261デフォルトの名無しさん2015/04/18(土) 15:44:24.07ID:3v7Rv0Mr
>>259
資格手当とか資格一時金が廃止された時期と
プログラムの全く組めないSEの登場時期が一致する気がするな。
0262デフォルトの名無しさん2015/04/18(土) 18:27:10.17ID:zx0WrgkA
低級言語の仕事をするつもりが無いので、
ベン図とか基数変換とかシステムの稼働率を覚える時間があるなら、
Rubyとか他の言語に触った方が身になる気がして。。。

ソフトウェアやシステム開発などの学習は、
役に立つと思いますが。
0263デフォルトの名無しさん2015/04/18(土) 18:48:03.24ID:Ql1IVHxp
>>262
システムの稼働率も理解できない奴がシステム開発とか、笑える
そもそも稼働率とか覚えるもんじゃないし
0264デフォルトの名無しさん2015/04/18(土) 19:52:23.50ID:pSroTT2+
ベン図書けないとDB無理だろ
基数計算なんか最上流に行ったとしても必ず使う機会はある
0265デフォルトの名無しさん2015/04/18(土) 20:55:02.93ID:4txnXhmu
ド・モルガンの法則さえ知ってりゃいいよ
0266デフォルトの名無しさん2015/04/18(土) 20:58:11.92ID:xRFwgHPC
定理だろw
数学に法則なんて用語あったっけ?w
0267デフォルトの名無しさん2015/04/18(土) 21:42:07.13ID:c7orzAZP
大数の法則(確率論)
平方剰余の相互法則(初等整数論)
0268デフォルトの名無しさん2015/04/18(土) 21:49:46.71ID:xRFwgHPC
大数の法則は法則って言ってるけどあくまでモデルだからね。
0269デフォルトの名無しさん2015/04/18(土) 22:19:56.77ID:BNt8ZDmj
>>262
自分から申し込んどいてなに言ってんの? としか思わんのだけど。
自分が役に立つと思えるヤツを取りに行けばいいじゃん、端っから。

認定試験合格ってのは、同列横並びの中から適当に使えそうなヤツを選ぶときのふるいのひとつでしかないんだから、
要らないなら要らないでいいんだけどな。
0270デフォルトの名無しさん2015/04/18(土) 22:22:47.80ID:Kn9P9KBQ
>>262
言語だけ覚えてもコーダーにしかなれないぞ。
ベン図や基数変換なんかは知ってて当たり前の基礎知識。
これらが理解出来てないってのはプログラム的な思考が出来てないってことだから、まともなプログラムは組めないだろ。
0271デフォルトの名無しさん2015/04/18(土) 22:32:22.42ID:KwXz4NYn
もういいでしょ、この話は
0272デフォルトの名無しさん2015/04/19(日) 04:35:33.51ID:WtKiF4AT
Swift超入門の参考書を買って読み進めようとしてるんですが最初の最初で詰まったので質問させていただきます
Swiftもobjective-cも質問スレがなく前身のobjetive-cがC♯系列だと聞いた覚えがあったのでここに来ましたがスレ違いだったらすみません

var x = 0
for n in 1...100 { x = x + n }
println(x)

というプログラムなんですが、for文が完了すると何故1から100までの加算した合計値を得られるのか理解出来ません

printlnは( )内の値を示すだけなのに何故1から100までの数字を羅列する結果にならないんでしょうか
0273デフォルトの名無しさん2015/04/19(日) 07:49:23.78ID:kxsFFz0z
>>272
そのレベルでいちいち質問してたらキリがないからそういうもんだと思って受け入れろ
参考書を写経してるうちにそのうちわかるようになる
あとC#とObjCみたいなクソを一緒にするな
あとSwiftやるより最初はPythonかRubyで勉強しろ
そっちの方が情報多くて最初の一歩としては楽だ
0274デフォルトの名無しさん2015/04/19(日) 08:05:11.68ID:NmhGU5QH
>>272
最初の var x = 0 の時点で x はInt型だと推論されてるんだよ
var x: Int = 0 ってことだね
だから数値の計算になるのさ
0275デフォルトの名無しさん2015/04/19(日) 08:08:05.70ID:7qy8HBd6
>>272
Swiftはよく知らんけど、変数xは文字列型じゃなくて整数型だから普通に足し算してるだけでは?
羅列しようと思ったら
for n in 1...100 { println(n) }
って書くんじゃないの

なんにせよここじゃなくてSwiftスレで質問したほうが親切に答えてくれるんじゃないかな
質問スレ無いのは仕方ないんだし
0276デフォルトの名無しさん2015/04/19(日) 13:51:24.80ID:ru13DCUl
>>150
CLRでの呼び名か、C#での呼び名か
Stringはint32
stringはint
0277デフォルトの名無しさん2015/04/19(日) 14:11:51.39ID:kblVIGtj
>C#での呼び名

まるでC#ではStringが使えないかのような物言いだな
0278デフォルトの名無しさん2015/04/19(日) 15:23:53.08ID:eiyqXV92
1 + 2 が 12 かよ、、、
0279デフォルトの名無しさん2015/04/19(日) 21:03:06.44ID:CxeSbXmJ
サンバルカン
0280デフォルトの名無しさん2015/04/19(日) 23:33:45.61ID:ru13DCUl
>>277
C#でCLR名が使えんとかいってませんがな
0281デフォルトの名無しさん2015/04/20(月) 01:10:52.60ID:zU+iMnzV
ド・モルガンの法則が嫌いだったから、ド・モルたんの法則って萌化して強引に覚えた思い出…
0282デフォルトの名無しさん2015/04/22(水) 20:54:44.35ID:NZ8QzlQ5
☆ 日本の核ブ装は絶対に必須ですわ。☆
http://www.soumu.go.jp/senkyo/kokumin_touhyou/index.html

☆ 日本国民の皆様方、2016年7月の『第24回 参議院選挙』で、改憲の参議院議員が
3分の2以上を超えると改憲が実現します。皆様方、必ず投票に自ら足を運んでください。
私たちの『日本国憲法』を絶対に改正しましょう。☆
0283デフォルトの名無しさん2015/04/22(水) 21:02:47.28ID:uA/oOgJM
コピペマン参上!まで読んだ。
0284デフォルトの名無しさん2015/04/26(日) 21:50:30.34ID:1NcTpQCe
デスクトップ上を画像認識(OCRでも可)数値等を読み取りたいのですが、C#で実現するにはどのようなアプローチ方法がありますか?
0285デフォルトの名無しさん2015/04/26(日) 23:37:50.83ID:T8rMi6ps
対象が絞れるなら単純なテンプレートマッチングで十分じゃね
OpenCVとか

汎用となるとやっぱOCRでしょうよ
まともな精度が出て
タダで使えるライブラリがあるのかどうかは知らない
0286デフォルトの名無しさん2015/04/26(日) 23:57:39.65ID:4iBxxq1J
C# OCR
でググると色々出てくるな
0287デフォルトの名無しさん2015/04/29(水) 12:06:12.90ID:0f2tu3PD
デザイナで TextBox を配置すると Text プロパティーに "textBox1" とかが初期値として設定されますが
適当な文字列プロパティーに、この文字列を設定する方法ってないんでしょうか?
DefaultValueAttribute(string)だと固定文字列になってしまうし
Nameで初期化すれば、インスタンス名ではなく型名になってしまう
0288デフォルトの名無しさん2015/04/29(水) 12:18:42.72ID:Y9QcOIGo
原理的にはSiteプロパティのsetをオーバーライドしてvalue.Nameを使えばいいんじゃないの
タイミング的にそれでうまくいかなければOnHandleCreatedあたりでやるとか、
もしくはその適当な文字列プロパティのgetに、値が入ってなければNameを返すロジックを入れるとか
0289デフォルトの名無しさん2015/04/29(水) 23:40:53.38ID:GII3K3VT
WindowsサービスとWindowsサービスプログラム間の通信を行いたいのですが、.Netリモーティング、WCFなどいろいろあり悩み中です。
どれが王道?でしょうか?VS2013で基本的には片方向通信です。
よろしくお願いします。
0290デフォルトの名無しさん2015/04/29(水) 23:56:05.43ID:ggwBR4W4
>>289
WindowsサービスとWindowsサービスプログラムって何?

プロセス間通信でググれば色々出てくると思うが.NETリモーティングで良いんじゃないの?
0291デフォルトの名無しさん2015/04/30(木) 00:08:19.89ID:rjyDD59e
>>290
すいません。C#で作られたWindowsサービスプログラムとWindowsサービスプログラムのプロセス間通信です。
0292デフォルトの名無しさん2015/04/30(木) 16:35:05.31ID:Kj4oK0XD
今時ならWCFだけどリモーティングでもまあそれほど不都合はないんでないかい。
どっちの方がいいかと言えば多分WCFの方がいいだろう。
機能的な意味ではどっちでもいいけど。
0293デフォルトの名無しさん2015/04/30(木) 19:34:18.93ID:75MO5jun
WCFって大げさな感じがしない?
0294デフォルトの名無しさん2015/04/30(木) 20:03:33.76ID:tatd8m3J
ほとんどの作業はちょっとしたスクリプトで十分なのに.NETの時点で十分大げさだからどうでもいい
0295デフォルトの名無しさん2015/05/01(金) 01:58:18.14ID:DyZhHTGO
.NETリモーティングって10年くらい前に廃れた奴だろ
変なもの勧めるなよ
0296デフォルトの名無しさん2015/05/01(金) 07:00:18.67ID:DqrRvjc3
>>295
3年くらい前に使ったが何か問題でもあるか。
0297デフォルトの名無しさん2015/05/01(金) 07:11:28.59ID:lwiWTNrd
使いっぱなしで再利用しないんなら問題はないね
後々既存のサービスに依存するアプリやサービスがどんどん追加されていくようなシステムに向いてる
02982892015/05/01(金) 13:08:55.55ID:Ep0HYtL6
ttps://code.msdn.microsoft.com/windowsdesktop/10-C-WCF-a3831723
ここを見たのですが、Windowsサービスプログラム内にホストとして組み込むの大変そうなんですが・・・
そもそもWCFサービスアプリケーションとしてプロジェクト作成しないといけない?
0299デフォルトの名無しさん2015/05/01(金) 13:22:32.20ID:Bavc1lXO
んなことない
0300デフォルトの名無しさん2015/05/01(金) 13:23:04.45ID:huml9Xht
んなこたーない
適当なスレッドで待ち受け開始だけしておけばいい
0301デフォルトの名無しさん2015/05/01(金) 13:39:18.96ID:bs+kWM1w
横だがMicrosoft OCR Library for Windows Runtimeって良さ気だな
ただ、Win8以上か・・・
0302デフォルトの名無しさん2015/05/01(金) 13:48:41.77ID:XsxuvEVX
そもそもプロセス間って同じPC内限定なのかそうでないのか
0303デフォルトの名無しさん2015/05/01(金) 13:48:45.89ID:0azMRs2b
IPC超便利
0304デフォルトの名無しさん2015/05/01(金) 14:37:10.07ID:V1rQwc9T
同じPC内ならそもそもプロセス分ける必要があるのかと
まあ別PCだとしても、何のサービスなのかによってベストな選択ってのは変わると思うけど
0305デフォルトの名無しさん2015/05/01(金) 22:45:37.03ID:hB2TzuBc
同じPCならプロセス分ける必要がないとか
どんだけ頭が悪いんだよ
0306デフォルトの名無しさん2015/05/02(土) 09:17:35.13ID:ua4D7DA8
>>305
同一PC内のWindowsサービスとWindowsサービス間ならプロセスを分ける必要は無いな。
自分ならスレッド実装する。
0307デフォルトの名無しさん2015/05/02(土) 09:23:42.78ID:ua4D7DA8
>>304
データベースを介するとかMSMQも選択肢に入るね。
WCFのキューにMSMQも使えるみたいなのでWCF万能かw

「牛刀をもって鶏を割く」になってしまう気がするが。
03082892015/05/02(土) 10:24:38.31ID:ozm6vtO6
>>302 >>304
後だしですいません。別PCの場合もあります。
自分で調べた感じですと、、
.NetRemotingはTCPポート通信のようなイメージ、WCFはWebサービス(SOAP)っぽい
プロセス間通信ではその他、COM、メールスロット、ファイル、データベース、TCPポート、SendMessage、メッセージキューあたりが使えそうかなと。
0309デフォルトの名無しさん2015/05/02(土) 10:40:18.52ID:ua4D7DA8
>>308
.NetRemotingは、リモートプロシージャコール(RPC)と言われるものの.NETフレームワークでの実装ね。
0310デフォルトの名無しさん2015/05/02(土) 12:23:58.69ID:RB0eIOGk
entityframeworkのセキュリティの質問なんですが。

dbContext.Objects.First(predicate);
セキュリティ制限されているAppDomainにおいて、上のような関数では、
dbContext.Objects.FirstはPermissionSetのUnrestrictedが必要な仕様なのですが、
かといって、そうAssertするとpredicateは例えばファイルアクセス等の操作が出来てしまいます
predicateだけセキュリティ制限するにはどうすれば良いのでしょうか?
0311デフォルトの名無しさん2015/05/02(土) 15:03:25.04ID:K095XSFz
EntityFrameworkを窓から投げ捨てる
0312デフォルトの名無しさん2015/05/09(土) 13:12:13.05ID:tvimGuxZ
読み取り専用のコレクションや配列をプロパティ等で公開する場合に
要素がなければnullを返すような実装は止めたほうが良いのでしょうか?
nullを返さないならforeachで直接使用できるので便利ですが
空のコレクションを作ったり保持したりするのが無駄に思えます。
どちらが一般的なのでしょうか。
0313デフォルトの名無しさん2015/05/09(土) 13:27:14.71ID:jPvozQIh
>空のコレクションを作ったり保持したりするのが無駄
この発想が理解不能。
0314デフォルトの名無しさん2015/05/09(土) 13:28:33.50ID:IATl8K8N
読み取り専用ならClone返しておけばいいんじゃないだろうか...
0315デフォルトの名無しさん2015/05/09(土) 13:54:45.45ID:O7eykXcd
気になるならgetが呼ばれた時点で作れば?
0316デフォルトの名無しさん2015/05/09(土) 14:27:24.66ID:5US4TnIv
>>312
> nullを返さないならforeachで直接使用できるので便利ですが

なら空を返せばいいやん
なにを無駄だと感じてるのか知らんけど、きちきちのリソースで動作する訳じゃないんだろ?
0317デフォルトの名無しさん2015/05/09(土) 14:42:09.63ID:kPhFEwM3
根拠もなく「xxすればいい」と片方が本来有るべき姿であるかの言い回しは低能がよく使う。
そんなものは自分がどう表現したいかによる。
返す物はあるけれどたまたま要素数が0なのか
要素数ゼロ=配列自体がないと捉えるのか、好きにしたらいい。
ただしドキュメントなりコメントは書いておけ
0318デフォルトの名無しさん2015/05/09(土) 15:05:49.85ID:tvimGuxZ
>>313
コレクションでない場合は空のインスタンス作ったりしないのに
コレクションだけ空のインスタンスを作るのが統一感がないということです。

>>314
厳密にはそれが正しいと思いますが流石にやり過ぎかと。

>>315
作成ではなく取得なので毎回返すインスタンスが違うというのはちょっと・・・。

>>316
それはそうなのですが、職場だとnullを返す規約だったのでちょっと気になって質問してみました。

>>317
どちらかで統一したいので一般論としてどうなのか知りたかったんです。
0319デフォルトの名無しさん2015/05/09(土) 15:29:37.87ID:DaqpEtAU
>>318
一般論知らないけど利用者からすればnullの可能性って嫌なもんだよね
(aaa.bbb ?? new List<string>()).Where(〜)

標準ライブラリでもnullを返すものは滅多にないしコンストラクタで生成してやれば良いでしょ
要素数0=nullなんて仕様だと削除されて0件になった場合も面倒見なきゃだぞ
0320デフォルトの名無しさん2015/05/09(土) 15:52:56.98ID:jPvozQIh
言っちゃ悪いけど>>317みたいのが一番無能っぽいw

端的に言えば空のコレクションを返すのが嫌(なぜ?そもそもそれが理解不能)だから
nullを返すなんてありえない。

もちろんnullを返すような仕様があってもいいが、それはnullを返すことによって
コレクションが空であるのとは別の状態であることを示したいという要件がある場合だけだ。
0321デフォルトの名無しさん2015/05/09(土) 16:55:44.38ID:DzztTi59
public IReadOnlyCollection<T> Values
{
 get { return _values.Value; }
}
private Lazy<List<T>> _values = new Lazy<List<T>>(() => new List<T>());

これで十分だろ?
Lazy 使わずに null 判定して作成するのもありだけど
0322デフォルトの名無しさん2015/05/09(土) 17:08:15.68ID:DaqpEtAU
Lazy言いたかっただけだろw
0323デフォルトの名無しさん2015/05/09(土) 17:58:54.93ID:O7eykXcd
Lazyは本末転倒すぎるだろ
どう考えても空配列で初期化するより余計に重いわ
0324デフォルトの名無しさん2015/05/09(土) 18:07:29.01ID:2b9Ifiyh
毎回nullチェックするコードは負けた気がするんだよな
0325デフォルトの名無しさん2015/05/09(土) 18:24:38.38ID:tvimGuxZ
>>319
わかりにくくてすみません。
>>312の読み取り専用のコレクションというのはインスタンスを作って中身を初期化したら
その後は一切変更されないコレクションのことです。
変更してもよいコレクションを公開するなら数に関係なくnullなんて返しません。
色々と調べてみたらMSDNにガイドライン(配列のですが)があって、
それによるとnullを返さないようにすべきとなっていましたのでこれに従おうと思います。
ただこのガイドラインだと文字列もnullを返すべきではないとなっているんですよね。
コレクションと違いこちらにはちょっと同意できないのですが世間の皆様はそこまでしているのでしょうか?

>>320
コレクションの中身のみが重要な場合は空もnullも要素がないという意味では
同じだからインスタンス作らないほうがリソース的には無駄がないという理屈です。

>>321
nullなしならそれで十分だと思います。
0326デフォルトの名無しさん2015/05/09(土) 18:25:25.57ID:yleDm8/y
なんかif文は負けた気がする
return data = (data ?? new List<string>())
0327デフォルトの名無しさん2015/05/09(土) 18:31:23.75ID:jPvozQIh
そういうのは
return data ?? data = new List<string>();
って書いて欲しい。
0328デフォルトの名無しさん2015/05/10(日) 00:54:02.77ID:sWt87iZw
null判定のコストもあるから実際は大差ないと思う
文字列も空文字とnullを使い分けたい時以外は基本空文字返すと思うけど
標準ライブラリでnull返すのってあったっけ
0329デフォルトの名無しさん2015/05/10(日) 09:04:25.30ID:tTHPKmpl
findメソッドとかLINQとかは?
0330デフォルトの名無しさん2015/05/10(日) 09:26:31.32ID:MYiGE0x7
>>329
今問題になってるのは要素の集合を返すメソッドが空集合の代わりにnullを返すことの是非
1か0かの0の場合にnullを返すことは誰も否定してない
LINQは集合を強く意識したAPIなので、1か0かの場合でもFirstOrDefaultみたいにクソ明示的に書かないとnull返さないね
0331デフォルトの名無しさん2015/05/10(日) 09:34:29.01ID:MYiGE0x7
読み取り専用でよくて空配列のインスタンス作りたくないんだったら、
internal static class EmptyArray<T> { public static readonly T[] Instance = new T[0]; }
こんなの用意しといて使い回したらどうだ
0332デフォルトの名無しさん2015/05/10(日) 09:47:38.12ID:tTHPKmpl
>>330
空集合の代わりにnullを返す場合のメリットは何?
0333デフォルトの名無しさん2015/05/10(日) 09:51:20.91ID:MYiGE0x7
>>332
知らんがな
無いと思うよ
0334デフォルトの名無しさん2015/05/10(日) 09:57:21.19ID:bz2SWbb2
条件に基づいた複数件結果の問い合わせをすることが目的でなくて
普段結果が存在するはずの何らかの取得を目的としたメソッドならnullを返すのが正しい
0335デフォルトの名無しさん2015/05/10(日) 10:14:27.12ID:VLWBs9Y0
>>332
nullを返さないメリットってnullチェックしなくていい以外にあるの?
それを理由にするならコレクション以外でも空を表すインスタンスを返せって話にならないの?

標準ライブラリに合わせればいいんだろうけど今回のケースに該当するプロパティってあったっけ
0336デフォルトの名無しさん2015/05/10(日) 10:23:24.57ID:tTHPKmpl
>>334
その場合はnullじゃなくて例外飛ばすんじゃないの?
0337デフォルトの名無しさん2015/05/10(日) 10:25:19.54ID:tTHPKmpl
>>335
毎回nullチェック面倒くさ
0338デフォルトの名無しさん2015/05/10(日) 10:29:30.71ID:udhumyro
nullチェックで済む場面で例外飛ばされるのも面倒だけどな
0339デフォルトの名無しさん2015/05/10(日) 10:31:47.37ID:MYiGE0x7
あるかないかの2択の場合はどういう形であれ結局分岐が必要になるケースが多いが
バッチ処理に代表されるように1〜複数と0は特に区別しなくてもそのまま問題なく動作するケースが多い
もちろん例外も多いが、程度問題だね
0340デフォルトの名無しさん2015/05/10(日) 10:35:47.53ID:Nckfwhlg
ちょい教えてください ファイルの一括処理+プログレスバーとの同期についての質問です

FileSystemクラス(Microsoft.VisualBasic.FileIO)使うと、
ファイル操作とか、プログレスバー付きでやってくれるので便利ですが
複数のファイルコピーとかでも、個別のファイルごとプログレバーが変わってしまう仕様ですが

一括して、処理できるクラスも確かあったはず(比較的新しいバージョンから)
ですが、探しても見当たりませんので、教えてほしいです。
確か、やりたいファイル操作をsetしていって、全てsetし終わった後、一連の処理をやるって
感じだったかと思います
0341デフォルトの名無しさん2015/05/10(日) 10:36:39.99ID:DPD1uiF2
こうして世界にまた新たな宗教論が生まれたのであった

俺的には入力でnullを許すならnull返せば良いんじゃないかなと思う
引数nullで例外吐くなら結果0個でもnull返すなよと
0342デフォルトの名無しさん2015/05/10(日) 10:55:04.15ID:MYiGE0x7
>>340
SHFileOperationを直接呼べばいい
pFromには複数のパスをヌル文字区切りで入れる
0343デフォルトの名無しさん2015/05/10(日) 10:57:44.51ID:QU/8PEPh
非同期プログレスバーは2012以降awaitasyncで簡単に実装できるようになったから、自分で適当に実装するといい
03443412015/05/10(日) 12:00:51.03ID:Nckfwhlg
>>342 >>343
Thx

MSから提供されている新規クラスであったように思ってたけど
多分、 IFileOperation使うって下の記事見たんだと思います
SHFileOperationからぐぐって見つけました

https://msdn.microsoft.com/ja-jp/magazine/cc163304.aspx
0345デフォルトの名無しさん2015/05/10(日) 12:01:39.86ID:az6sSAuA
>>341
宗教関係ない。
必用もないのに質問者が主張するような意味不明な理由でnullを返すなんてただの愚行。馬鹿丸出し。
0346デフォルトの名無しさん2015/05/10(日) 12:26:48.78ID:KQSGu01u
>>331
すでにあるよ
https://msdn.microsoft.com/ja-jp/library/bb341042(v=vs.110).aspx
0347デフォルトの名無しさん2015/05/10(日) 12:35:19.87ID:oWOtV+Q7
ごもっともだな。
不要な煽りが尻についているのは馬鹿丸出しだが。
0348デフォルトの名無しさん2015/05/10(日) 12:44:46.76ID:az6sSAuA
>>347
煽ったつもりはなかったけど、誤解を招く表現ですまんね。

馬鹿丸出しってのは直前の愚行を同じ意味の言葉を反復しただけで>>341のことを
指して言う意図はなかったが、そう取られても仕方がない。
0349デフォルトの名無しさん2015/05/10(日) 12:46:59.37ID:VLWBs9Y0
自分が理解できないものは悪って考えの人なんでしょ
自分には必要ない=他人にも必要ないってやつ

>>346
それIEnumerable<T>じゃん
0350デフォルトの名無しさん2015/05/10(日) 13:09:30.76ID:oAYzH7be
ヌルポ
0351デフォルトの名無しさん2015/05/10(日) 13:26:32.01ID:2LKVHReQ
ga
0352デフォルトの名無しさん2015/05/10(日) 15:17:01.74ID:IbpGInWc
ヘルスバーグも、もしc#を作り直すならnull非許容型を入れたいとか言ってたな。

stringとかコレクションなんて空のインスタンス返してくれりゃいいのによ
0353デフォルトの名無しさん2015/05/10(日) 18:49:18.72ID:07Tq/7H4
>>349
倒錯してるねお宅w

nullを返さないメリットがあるのか、っていう問題設定も倒錯してるが、
自分が他人に聞く耳を持ってない(もしくは絶望的に頭が悪い、あるいはその両方)故に
他人が「自分が理解できないものは悪って考え」を持ってるように見える倒錯の自覚がないんだから笑える。
0354デフォルトの名無しさん2015/05/10(日) 20:30:33.45ID:H2aT+UyF
他でやれよキチガイ
0355デフォルトの名無しさん2015/05/10(日) 23:25:30.25ID:2LKVHReQ
自分の倒錯がない、か
ふ
0356デフォルトの名無しさん2015/05/11(月) 05:59:09.93ID:THA85e4W
しょぼい質問すいません。

public class Boy{
public static enum Status{
Idle = 0,
Run,
Jump
}

public void SetStatus(Status s){
switch(s){
case Status.Idle{
//アイドル時の処理
・・・
}
}
・・・

上記のクラスを別クラスから

boy.SetStatus(Boy.Status.Idle);

としようとすると、

The modifier 'static' is not valid for this item

というエラーメッセージがでます。何が問題でしょうか。
0357デフォルトの名無しさん2015/05/11(月) 06:12:49.50ID:/d3x1RZ5
Java経験者か?
C#のネスト型は全てJavaのstatic相当だからstaticは要らん
0358デフォルトの名無しさん2015/05/11(月) 07:01:02.44ID:THA85e4W
>>357
早速のレス有難うございました。static 相当なんですか、知らなかった
staticを消し去ったらエラーでなくなりました。
0359デフォルトの名無しさん2015/05/11(月) 15:31:57.10ID:3W1OriMV
あやまることないぞ
なごむ
0360デフォルトの名無しさん2015/05/11(月) 22:42:18.74ID:UCBUcqC1
unityでゲームを作りたくて独習c#(全16章)を見ながらc#を学習中なんだけど
これって初心者が半月ほどでマスターできるもんなの?

前に1日1章づつ進めるみたいなことが2chで書いてあったのを見て心配になってきた

約4ヶ月で500ページほど進めたんだがこれって遅い?
課題のプログラムを打ったり 内容を定着させるだけでもかなり時間がかかるんだが
0361デフォルトの名無しさん2015/05/11(月) 22:45:25.36ID:/d3x1RZ5
全くの未経験ならそんなもんだろ
C#はC++やJavaからの移行がメインターゲットだけど、
そういう人なら2,3日でいける
0362デフォルトの名無しさん2015/05/11(月) 22:54:34.18ID:fag+eL45
独習C#はいい本だけど、全部やる必要ないよ。

ある程度進めばプログラム書けるようになってるし、後は目次でも眺めて、この機能はああいう場面で使うんだなって想像できるようになったら、そこをやってみたらいいよ。
0363デフォルトの名無しさん2015/05/11(月) 23:04:23.59ID:HvlWSqoB
WinFormsのことで質問させていただきます
あるフォームで受け取った情報を元に子フォームを新たに表示させ、ユーザーに通知するアプリを書いてます
子フォームの方をどうしてもアクティブにしたくないのでCreateParamsをオーバーライドしてWS_EX_NOACTIVATEを付与しています
(また、通知を目的としているのでWS_EX_TOPMOSTも付与しました)
この時、子フォームの方でコンテキストメニューのアイテムをクリックするとアクティブになろうとし、親フォームも前面に表示されてしまいます
見た目がお粗末なので、アクティブにしたくない(≒親フォームを前面に表示したくない)のですがどうすればいいでしょうか?

コンテキストメニューはContextMenuStripを使用しています
メニューを表示した時点では何も起こらず、アイテムにカーソルを合わせて(左,中,右いずれも)クリックを押下した時点で現象が発生します
アイテム自体はToolStripMenuItemクラスのものを動的に生成したものをToolStripItemCollection.Add()で追加しています

ToolStripMenuItemクラスのPerformClick()が「マウスでクリックされたときに、ToolStripItem をアクティブにします。」という不穏なものだったので、アイテムを継承して隠蔽してみても同様に押下時点でアクティブになってしまいました
親フォームにもWS_EX_NOACTIVATEを付与してみても変わらず、クリックに関するあらゆるイベントを一旦外してみても変わりませんでした
0364デフォルトの名無しさん2015/05/11(月) 23:09:43.62ID:2taC8jHT
>>361
よく2,3日で、なんて言うヤツが居るがC++やJavaを知っていたとしても
それなりに使いこなせるようになるのには最低、半月は掛かるだよ
0365デフォルトの名無しさん2015/05/11(月) 23:14:04.83ID:UCBUcqC1
>>361
>>362
サンクス 学習方法が悪いのかといろいろ気になってたんだけど安心した
ここまでやって最後までやらないのは気持ち悪いのでがんばるよ
0366デフォルトの名無しさん2015/05/11(月) 23:14:45.87ID:/d3x1RZ5
>>364
それはライブラリとかその言語ならではの慣習とかの習得も含めてだな
独習で学べるような「言語だけ」なら2,3日あれば十分
本当にJavaやC++を理解していればの話だが
0367デフォルトの名無しさん2015/05/11(月) 23:19:40.45ID:2taC8jHT
>>363
アクティブにならないウィンドウ
ぐぐれ
0368デフォルトの名無しさん2015/05/11(月) 23:24:44.59ID:VfSmB2Zt
>>363
問題がよく理解できんけど、だったら親子関係を持たせる必要がそもそもないのでは?
0369デフォルトの名無しさん2015/05/11(月) 23:31:57.34ID:fag+eL45
2 3日なんて読んで終わりがいいとこだろ。
見栄っ張りだなぁー
0370デフォルトの名無しさん2015/05/11(月) 23:38:20.79ID:VfSmB2Zt
LINQ後回しにしても良ければそんなものかなって気もするけど、
LINQも入れてだと普通の人は2,3日じゃ無理だと思う
0371デフォルトの名無しさん2015/05/11(月) 23:39:34.20ID:HvlWSqoB
>>367
上に挙げた操作以外ではアクティブになりません
WM_MOUSEACTIVATEを受け取りメッセージのResultをWA_NOACTIVATEを代入して返すのも既に試してダメでした
他にあるかどうか調べてます

>>368
言葉不足ですみません、
説明上便宜的に親と子という単語を使っただけで特別何かしらの関係があるわけではありません
0372デフォルトの名無しさん2015/05/11(月) 23:40:10.94ID:MSFIVlYt
言語よりクラスライブラリ使いこなすほうが大変だわ
0373デフォルトの名無しさん2015/05/12(火) 00:03:56.80ID:5JIVc8IU
便利なクラスライブラリまとめたサイト教えてください!
0374デフォルトの名無しさん2015/05/12(火) 00:20:00.74ID:2qj2FgYQ
ttps://msdn.microsoft.com/
03753632015/05/12(火) 00:55:00.81ID:JgIyYEkS
http://www1.axfc.net/u/3465925
簡単に状況を再現したものを上げてみました
0376デフォルトの名無しさん2015/05/12(火) 06:59:08.70ID:UBEH/BOo
>>373
https://www.codeplex.com/
0377デフォルトの名無しさん2015/05/12(火) 10:28:46.17ID:WZh54/Cu
>>375
サブスレッドを作ってそこから子フォームを開けばいいよ(適当
0378デフォルトの名無しさん2015/05/12(火) 11:07:31.23ID:2Epq5Vrl
元フォームを透明にしっぱなしにして
表示したいフォームはTOPMOST以外の物も別に作る、とか
03793632015/05/13(水) 02:56:15.35ID:rmCMDYJ8
>>377さんのやり方で無事目的が達成できました。ありがとうございました
めぼしいメッセージを潰そうがお構いなしにアクティブにしてくるので、
もうめんどくさくなってメッセージループごと全部別スレッドに押し付けました

>>378
1行目: 説明不足ですみません。元フォームの方でも操作を行う設計なので不可視にするのは選択肢としてありませんでした
2行目: 同じアプリケーションのフォームであればアクティブ化時に全てのウィンドウが前面に表示されるみたいなので、
     ダミーのウィンドウを挟むとかは確かに一度考えましたがおそらく意味ないですね
0380デフォルトの名無しさん2015/05/13(水) 07:33:28.31ID:CyrL7tq4
usingって、#includeと同じような意味合いですか?
0381デフォルトの名無しさん2015/05/13(水) 07:45:43.57ID:q1XSy79m
色々違うけどまぁ似たようなもん
0382デフォルトの名無しさん2015/05/13(水) 07:46:48.44ID:S9DNZdjl
全く違う
usingは名前空間を省略できるようになるだけ
Cではファイルごとにコンパイルが独立して走るので#includeしないとコンパイラが他のファイルにあるものを認識できないが、
C#ではコンパイラがもともと全体を認識しているので別にusingしなくても他のファイルにあるものを参照できる
0383デフォルトの名無しさん2015/05/13(水) 09:12:20.60ID:3R4cfA9+
>>379
>>377だけど、こういう発想ができる俺すごいよなw
天才と凡人の違いを感じる
0384デフォルトの名無しさん2015/05/13(水) 09:52:09.19ID:nqIuSKm+
>>379
経験者がうまくいった方法を書いてるのに

おそらく意味ないとか失礼な奴だな
内容もよくわかってないみたいだし
0385デフォルトの名無しさん2015/05/13(水) 13:47:03.30ID:rmCMDYJ8
>>383
残念ながら1フォーム1スレッド使うので正式には採用できませんでした、すみません
ただ、こういうしのぎ方もある、と参考にはなりました。ありがたいです

>>384
理解が足りてなくて378さんにも申し訳ないです
仮に元フォームを透明にしていい前提だとして、具体的にどんな設計にできますか?
僕では自分で言った379の他に何も思いつけないので、アドバイスの内容が理解できてる384さんから聞きたいです
0386デフォルトの名無しさん2015/05/15(金) 08:30:43.78ID:WGbVmF0r
しょぼい質問すみません。
C#でaspxのプログラムをしています。
phpのrequireみたいにクラスの定義を外出しにできますか?

<%@ Page Language="C#" %>
<%
// Step1 ファイルからデータをdataに読み込む
// Step2 読み込んだデータを整形して画面に表示する
%>
という処理をさせたいのですが、Step2のコードが長くなりそうなので別ファイルにしたいです。

phpだと
<?php
require seikei.php; ←ここに整形するクラス(seikei)を記載する
// Step1 ファイルからデータをdataに読み込む
// Step2 読み込んだデータを整形して画面に表示する
$text=new seikei($data);
print $text;
?>
って書けばいいと思うんですが、c#でrequreに相当する関数が見つかりません。
0387デフォルトの名無しさん2015/05/15(金) 08:34:24.50ID:wMYXsmJE
どうぞ
https://msdn.microsoft.com/ja-jp/library/015103yb%28v=vs.100%29.aspx
0388デフォルトの名無しさん2015/05/15(金) 08:37:28.36ID:wMYXsmJE
reactの開発者はコードとマークアップの分離は関心の分離ではなく技術の分離だから
一緒に書いてあるべきだって言ってたな
審美眼おかしいんじゃねえの
javascriptなんか書いてるからだ
0389デフォルトの名無しさん2015/05/15(金) 08:41:00.97ID:GMFmYUBa
所詮クライアントなんだからどっちもビューにすぎない
0390デフォルトの名無しさん2015/05/15(金) 20:03:27.36ID:7/UU3fpq
>>386
asp.netのwebformのひな形はコードビハインドがデフォじゃないのけ?
0391デフォルトの名無しさん2015/05/15(金) 20:12:16.06ID:HpsIRK8w
>>386
visual studioで作ってるか?
0392デフォルトの名無しさん2015/05/15(金) 20:38:53.67ID:KQDgGchW
外部プログラムから引数を受け取り実行するプログラムを組んでいます。
そこでデバッグ実行する為に

Debug* > Start Options > Command line arguments: の中に

AAA\r\nBBB\r\nCCC  ・・・�@

と入力しプログラムを走らせたところ
Enterを押しても改行を入れてのコマンドライン指定が出来ません。

str_arrangement[0]の値は

AAA
BBB
CCC

となっていることを想定(期待)していたのですが�@となっていました。

[STAThread]
static void Main(string[] str_arrangement)
{
// str_arrangement[0]
}
どうすればコマンドライン引数に改行を入れる事が出来ますか?
0393デフォルトの名無しさん2015/05/15(金) 20:44:05.54ID:LbB40UU3
そもそもコマンドラインは改行できないでしょ
0394デフォルトの名無しさん2015/05/15(金) 20:50:10.21ID:P6TE8e/2
string str = str_arrangement[1];
strarg = str.replace("\\n","\n");
0395デフォルトの名無しさん2015/05/15(金) 20:50:19.10ID:VrkjESyN
出来るみたいだよ
http://d.hatena.ne.jp/hotokediary/touch/20110205/1296880664

ただ一般的じゃないからVSでは無理だろ
起動用プロジェクトを別に作ってみたら?
0396デフォルトの名無しさん2015/05/15(金) 21:24:16.34ID:WPCuHu1g
>>>394
うーん、やっぱりそういう迂回作を使わないとダメなんですね。。。

>>395
面倒なので >>394 でいきます。
0397デフォルトの名無しさん2015/05/15(金) 22:03:53.95ID:4m+4Cz6q
エディタ等からコピペで改行コード挿入できたぞ
0398デフォルトの名無しさん2015/05/15(金) 22:46:46.75ID:HpsIRK8w
デバッグ実行のために>>394にするのはどうかと…

エスケープ入れると「\n」リテラル入力する時の問題が出てくるし
0399デフォルトの名無しさん2015/05/16(土) 04:23:25.38ID:ljsNYmv9
>>397
普通Enterで入れられるべきでしょ。
0400デフォルトの名無しさん2015/05/16(土) 04:37:46.33ID:2fYxSmep
コマンドラインって何かわかってる?
0401デフォルトの名無しさん2015/05/16(土) 08:01:48.69ID:4tUTPQEQ
edlinはエディタに使えますか?
0402デフォルトの名無しさん2015/05/16(土) 09:36:15.35ID:808i7u12
>>397
C# はそれでできるんだな
C++ は直接 *.vcxproj.user 書き換えないとダメだった
0403デフォルトの名無しさん2015/05/17(日) 10:43:25.16ID:Qa54Pmnu
label1
label2
label3

for(int i=1;i<3;i++){
label(i ).text = 文字
}
みたいにやりたいんですが、ラベルとか、テキストボックスの配列化?は出来ますか?
0404デフォルトの名無しさん2015/05/17(日) 10:50:08.98ID:PEgsZgRL
自分で配列作ればいいじゃない
0405デフォルトの名無しさん2015/05/17(日) 10:50:09.87ID:MUnfOjBK
まとめてPanelに入れてpanel.Controls
もしくは単にControls[“text” + i]
手で配列に入れるのはミスの元なのでお勧めしない
0406デフォルトの名無しさん2015/05/17(日) 11:37:20.22ID:3k/uCjkF
>>403
こういうことだろ?

label[] labelArray = new label[]{
label1,
label2,
label3
}

for(int i=1;i<3;i++){
labelArray[i].text = "label"+i;
}
0407デフォルトの名無しさん2015/05/17(日) 11:41:53.73ID:3k/uCjkF
それか要素名を直接、動的にリフレクションで扱う手もあるけど
全くおススメできない
0408デフォルトの名無しさん2015/05/17(日) 11:42:56.47ID:Qa54Pmnu
>>404
>>405
>>406
そのように出来るのですね、ありがとうございます!
0409デフォルトの名無しさん2015/05/17(日) 12:03:54.78ID:3ILPbA+F
>>407
最近リフレクションを覚えたのかな?
0410デフォルトの名無しさん2015/05/17(日) 12:16:21.11ID:3k/uCjkF
>>409
C#当初から知ってるが
リフレクションを知らない人?
0411デフォルトの名無しさん2015/05/17(日) 12:23:34.47ID:gBt4eqGA
リフレクションを使うべき場面でもないのにリフレクションするのはたいてい初心者
0412デフォルトの名無しさん2015/05/17(日) 12:29:38.93ID:55duNRiS
何のこっちゃw
0413デフォルトの名無しさん2015/05/17(日) 12:30:17.37ID:A/2J8g9j
>>411
409は使う必要もない所でリフレクション使って
糞コードを量産している初心者なんだろう
0414デフォルトの名無しさん2015/05/17(日) 13:11:18.36ID:fqCMYSmn
コントロール配列欲しい人たまにくるから簡単に作っといた
https://ideone.com/pzQoqs
0415デフォルトの名無しさん2015/05/17(日) 15:20:34.54ID:Vz8/wQyv
コントロール配列が欲しいってのは低能VB厨だろ?
0416デフォルトの名無しさん2015/05/17(日) 17:07:55.32ID:a+o15yPS
コントロール配列が必要な場面に遭遇したこともないようなやつは
ほとんど実務経験がない初心者だろうな
0417デフォルトの名無しさん2015/05/17(日) 17:15:09.76ID:azDp/x2p
実務はクソコードで溢れてるような言い方止めてくんない?
お前が代表面すんな
0418デフォルトの名無しさん2015/05/17(日) 17:22:33.01ID:oXL/1QJX
状況に合わせて適切な実装が選択出来ることが一番重要じゃね?
417みたいに何やってもダメな奴もいるけど
0419デフォルトの名無しさん2015/05/17(日) 17:26:58.87ID:gfkqninw
VB6のようなベタなコントロール配列なんて使わないだろ
0420デフォルトの名無しさん2015/05/17(日) 17:27:22.12ID:wvzPz3Ba
社会に出たら病コピペと似てるわ
よほど酷い仕事でストレス溜めてんのね
0421デフォルトの名無しさん2015/05/17(日) 17:27:48.35ID:6hGp8vWg
>>416
むしろコントロールをインデックスで指定しなきゃならんようなら
普通はバカみたいに同じ機能のコントロールを配置しなくて良いようにUIを見直すよ。

万が一必用でもコードで明示的にList<T>なり何なりに突っ込む。
0422デフォルトの名無しさん2015/05/17(日) 17:31:33.29ID:fqCMYSmn
静的なデザインに動的なアクセスは出来ればやりたくないが、保守性や可読性を考えた場合にそういう選択になる事もあると思うよ
作りゃいい話だがせめてForm.AllControlsとか欲しかったな
0423デフォルトの名無しさん2015/05/17(日) 17:34:29.31ID:MUnfOjBK
コントロールをインデックスで指定しなきゃいけないようなUIはそもそもWindows的におかしいので
どう足掻いてもクソコードになるが、業務では必要とされることが多いのは事実であるから
実務がクソコードで溢れているというのは必然だ
そのへんWebならわりと綺麗に作れるんだけどね
0424デフォルトの名無しさん2015/05/17(日) 17:36:05.00ID:fqCMYSmn
>>421
これ>>416を肯定しちゃってるよね
List<T>がコントロール配列そのものだから
0425デフォルトの名無しさん2015/05/17(日) 17:49:59.53ID:KGZ6ijCa
>>422
>作りゃいい話だがせめてForm.AllControlsとか欲しかったな

これを作ってもアクセス方法が動的アクセスしかなく実用性がほとんどない
よって実装されていないんだろう
配列やリストは静的アクセスするためのもの
0426デフォルトの名無しさん2015/05/17(日) 17:56:08.58ID:ygZMD/3a
GetMembersでとれるんじゃない?
0427デフォルトの名無しさん2015/05/17(日) 17:57:35.80ID:PEgsZgRL
話が噛み合ってない気がする
0428デフォルトの名無しさん2015/05/17(日) 18:20:19.82ID:fqCMYSmn
>>425
状況に応じてVisible切り替えるような時、その切り替え仕様をTagに定義しておきたいとか
0429デフォルトの名無しさん2015/05/17(日) 18:21:08.75ID:6hGp8vWg
>>424
どういう読解力だよ
0430デフォルトの名無しさん2015/05/17(日) 18:30:11.42ID:Vz8/wQyv
コンテナコントロールがある以上ツリー状なデータなわけだから
配列っていわれるとモヤモヤする
0431デフォルトの名無しさん2015/05/17(日) 18:35:05.73ID:dM0pmF2t
>>429
424じゃないけど
お前が自分でリスト使うってって書いてるだろ
アホ

>万が一必用でもコードで明示的にList<T>なり何なりに突っ込む。
0432デフォルトの名無しさん2015/05/17(日) 18:38:19.14ID:EwfTb6QO
>>430
アクセス方法が配列そのものだろバカか?
0433デフォルトの名無しさん2015/05/17(日) 18:52:00.43ID:gfkqninw
ところで、WPFだと動的なコントロールの作成は楽なのけ?
0434デフォルトの名無しさん2015/05/17(日) 19:11:41.72ID:azDp/x2p
お、荒れてるね
0435デフォルトの名無しさん2015/05/17(日) 19:14:19.96ID:MUnfOjBK
WPFならItemTemplateを使えばコード書かずに楽勝
でもXAMLは学習コスト高めなので今時コントロール配列とか言ってる子には厳しいだろうな
0436デフォルトの名無しさん2015/05/17(日) 19:31:50.11ID:6hGp8vWg
>>431
馬鹿かお前。

システムが暗黙的に作成するコントロール配列なんか使わずに
ユーザーコード上に明示的に宣言したList<T>を使うって言ってるのにどんな馬鹿だよ本当。

っていうか前の文節で

---
むしろコントロールをインデックスで指定しなきゃならんようなら
普通はバカみたいに同じ機能のコントロールを配置しなくて良いようにUIを見直すよ。
---

こう書いてるのにそっちは完全無視か馬鹿。
っていうか馬鹿は鳥頭だから2行以上前に書いてあることは覚えてないんだろうな
0437デフォルトの名無しさん2015/05/17(日) 19:36:36.38ID:Dosz5ijJ
>>436


>システムが暗黙的に作成するコントロール配列なんか使わずに
>ユーザーコード上に明示的に宣言したList<T>を使う

自分が書いてる意味もわからない正真正銘の知的障害者
何を言っても無駄な社会のゴミ
早く自殺してね
0438デフォルトの名無しさん2015/05/17(日) 20:11:47.34ID:gfkqninw
>>435
WPF流行ってないよね。
MSも新技術色々出してハードドル上げてどうするつもりなんだろ?
トンデモな勘違い野郎が間違った使い方するよ。
0439デフォルトの名無しさん2015/05/17(日) 20:12:28.97ID:gfkqninw
ハードドルって何やねんw
0440デフォルトの名無しさん2015/05/17(日) 20:19:21.52ID:TC+xegdR
M$が密かに開発しているソフトドルの機密を漏らした罪により >>439 は消される
0441デフォルトの名無しさん2015/05/17(日) 21:26:36.50ID:3k/uCjkF
WPFはマイクロソフトが事実上捨ててるからその内silverlightみたいにサポート終了になるだろうね
0442デフォルトの名無しさん2015/05/17(日) 21:29:26.73ID:MUnfOjBK
ビジネスアプリケーション向けの.NETの次世代UI技術は結局ASP.NET MVCに落ち着いたよ
極めて普通なWeb MVCアーキテクチャだからもう>>438のような批判は当たらない
XAMLなんかより遥かに分かりやすいから今からやるんならASP.NET MVCがいいよ
0443デフォルトの名無しさん2015/05/17(日) 21:37:26.12ID:6hGp8vWg
またいつものwebに夢みてる時代錯誤な人か
0444デフォルトの名無しさん2015/05/17(日) 21:40:48.22ID:MUnfOjBK
>>443
MSが最近出したVisual Studio CodeはHTML5とJavaScriptで作られてるんだぜ
0445デフォルトの名無しさん2015/05/17(日) 21:51:40.01ID:3k/uCjkF
HTML5とjavascriptは標準技術だからね
XAMLやASP.NET MVCみたいなローカル技術とは分けが違うよ
0446デフォルトの名無しさん2015/05/17(日) 22:03:39.45ID:MUnfOjBK
>>445
ASP.NET MVCはサーバー側の技術で、クライアントに使うのは当然HTML5だ
実際使うかどうかはともかく、今時Web MVCを全く知らないって
さすがに開発者としてヤバいぞ
0447デフォルトの名無しさん2015/05/17(日) 22:04:37.23ID:CzRQDZeG
>>444
操作感がsublime textやatomそっくりな件。
0448デフォルトの名無しさん2015/05/17(日) 22:13:53.35ID:gfkqninw
>>442
別にasp.net mvcをdisってる分けじゃないんだが。
0449デフォルトの名無しさん2015/05/17(日) 22:27:59.00ID:3k/uCjkF
>>446
MVCを全くしらないとかどこに書いてあるんだ?
おまえ頭おかしいぞ?
自分が知ってる狭い知識で語ってんじゃねえよ
身の程を知れ井の中の蛙
0450デフォルトの名無しさん2015/05/17(日) 22:36:25.53ID:azDp/x2p
WebはどうでもいいけどXAMLは100万年掛けても流行らないから
MSはアプリ輸入の準備だけしててちょーだい
0451デフォルトの名無しさん2015/05/17(日) 23:02:16.91ID:B6Xc4iyU
リファクタリングしたらxamlも更新されるようにせんか!手動バインドとか恐ろしいわ
0452デフォルトの名無しさん2015/05/17(日) 23:47:12.71ID:fg7/jRp/
MVCとASP.NET MVCの区別もつかないアホに構ってはいけない
0453デフォルトの名無しさん2015/05/17(日) 23:57:17.18ID:8oOUPadZ
>>446
恥ずかしいゴミめw
0454デフォルトの名無しさん2015/05/18(月) 00:12:02.48ID:rY8mv9pb
>>453
ローカル技術をクライアントサイド技術だと勘違いしてるって事かw
0455デフォルトの名無しさん2015/05/18(月) 02:48:52.06ID:iGSkgNue
結局WindowsアプリのGUI作るのには何が一番いいの?
0456デフォルトの名無しさん2015/05/18(月) 03:00:38.81ID:tQ5Dyqi2
Windows Forms
0457デフォルトの名無しさん2015/05/18(月) 06:25:04.78ID:rY8mv9pb
高dipのディスプレイが普及したらXAMLなんだろうけど。
0458デフォルトの名無しさん2015/05/18(月) 06:27:21.84ID:4bXcOge2
WinFormsでいいよ
わざわざXAMLやるくらいならそれこそHTMLの方がいい
VSCodeみたいにラップすることもできるし、ストアアプリでもHTML使えるんだし
04594572015/05/18(月) 06:28:53.40ID:rY8mv9pb
dip → dpi の間違い
0460デフォルトの名無しさん2015/05/18(月) 07:06:37.40ID:jdBOVrH8
なんか、おれのくだらない質問から荒れてしまったみたいでなんかすみませんw
0461デフォルトの名無しさん2015/05/18(月) 07:19:24.34ID:92QLSF+E
誰だテメーは
いきなり現れて
0462デフォルトの名無しさん2015/05/18(月) 07:42:22.46ID:jdBOVrH8
>>403
こいつです
0463デフォルトの名無しさん2015/05/18(月) 07:51:13.98ID:oJXHJ+WI
気にすんな
最近ふらっとスレには煽りたいだけの低能が集まってるみたい
0464デフォルトの名無しさん2015/05/18(月) 08:07:17.02ID:3eEkTQ9y
いるね
レスのケツに必ず煽りがついてる人とか
0465デフォルトの名無しさん2015/05/18(月) 08:27:22.37ID:R6NuXwMZ
集まってるって言うか、まともなやつらがいなくなっただけかと...
0466デフォルトの名無しさん2015/05/18(月) 08:29:14.79ID:wiNRRdg2
5月の何時もの風景。
0467デフォルトの名無しさん2015/05/18(月) 08:29:37.73ID:7BvZDlvH
>>1
0468デフォルトの名無しさん2015/05/18(月) 17:38:21.87ID:LZCCaXsh
C# でIEを操作しているのですが


ie.Quit(); をしてもブラウザが閉じないことがよくあります。

これを回避する方法はありますか?

もしくは、無理やりプロセス削除をするしか方法はないのでしょうか?
0469デフォルトの名無しさん2015/05/18(月) 18:11:13.71ID:oJXHJ+WI
COMオブジェクトがリークしてんじゃねーの?
Marshal.ReleaseComObjectし忘れ。

例えば
var hoge = ie.Document.getHogeHoge();
↑
ie.DocumentのところでHTMLDocumentClassオブジェクトがリーク
0470デフォルトの名無しさん2015/05/18(月) 20:09:01.46ID:IFcmf4XH
まぁそれはよくある話だがIE自体がクソ
なんでわざわざIE向けのCode書きたくもない。
0471デフォルトの名無しさん2015/05/19(火) 12:09:18.52ID:KlK4atyI
他のスレで書くとC++やJavaを進められるので、あえてここで聞いてみます
VSのC#が慣れた人がAndroidのビジネスアプリを作成する場合、何が一番良いのでしょう?
外部機器と通信して数値やグラフ表示する程度ですが
0472デフォルトの名無しさん2015/05/19(火) 12:24:11.27ID:Px7Puw/x
そんな前置きを書くとC++とJava勧める奴がでるぞ
0473デフォルトの名無しさん2015/05/19(火) 12:24:17.97ID:Ll/HpEwU
そんなもんASP.NET MVCで作ってブラウザで表示すりゃいいよ
ビジネスアプリならどのみち裏でサーバー動いてるんだろ?
わざわざAndroid固有の技術を覚える必要なんかない
もしどうしてもネイティヴの体裁にしたいならWebView貼って終わり
0474デフォルトの名無しさん2015/05/19(火) 12:45:54.61ID:Ll/HpEwU
あと言語の問題だけじゃなくてデプロイやアップデートをどうするのかとか
紛失時のセキュリティとか、あらゆる面でWebの方が楽だ
JSから使えない端末側の機能が必要とかオフラインでも使えるようにしたいとか、
よほど強い理由がなければサーバ側に何を使うかともかくWebベースがいい
0475デフォルトの名無しさん2015/05/19(火) 13:25:28.98ID:BpuPofZt
>>471
Javaでいいんじゃね。C#使えるならちょっと勉強すればJavaの文法は難しくないだろ
ライブラリやAPIはどっちにしろ覚えないとしょうがないだろうから

>>473-474
外部機器と通信というくだりをどう考えてるのか聞かせて欲しいもんだ
0476デフォルトの名無しさん2015/05/19(火) 13:39:06.72ID:D6hTeVWg
なんでもそうだけど一番メジャーなもので作るのがいいよ。
だからJava
0477デフォルトの名無しさん2015/05/19(火) 14:26:18.58ID:Ll/HpEwU
>>475
外部機器と通信というのが端末と機器の間で直接通信するという意味であるなら、
そもそも選択の余地はないだろうしそんなテクニカルな話で一般論の答えを求めても仕方ないと思うんだが
0478デフォルトの名無しさん2015/05/19(火) 14:33:43.23ID:D6hTeVWg
通信だけ側でやって表示はWebViewでやればいい
0479デフォルトの名無しさん2015/05/19(火) 20:28:32.62ID:Ye3mIF4/
>>469
対策としてはどーすればいいの?
0480デフォルトの名無しさん2015/05/19(火) 20:53:01.44ID:7GmTMJUE
リストを2つ用意してMVCモデルで設計するって
簡単に言ってどういう感じになるんでしょうか?

list1とlist2があったとすると、list2にlist1の参照を入れる?って事ですよね?
0481デフォルトの名無しさん2015/05/19(火) 21:17:45.49ID:baIIPGtU
何言ってるんだかさっぱり分からん
誰がそうしろって言った?
そいつにMVCとはなんですかと聞け
たぶん一般的な意味とは違うんだろ
0482デフォルトの名無しさん2015/05/19(火) 21:23:26.04ID:DIo0U3oL
>>479
いちおう変数で受けておいて使い終わったらMarshal.ReleaseComObjectする
効果ないかもしれない上に非常に面倒くさいけど。

var doc = ie.Document;
try
{
 var hoge = doc.getHogeHoge();
 try
 {
  ...
 }
 finally
 {
  Marshal.ReleaseComObject( hoge );
 }
}
finally
{
 Marshal.ReleaseComObject( doc );
}

IEとかってプロセスが再利用されるの期待して、すぐに死なないとかない?
0483デフォルトの名無しさん2015/05/19(火) 21:35:43.77ID:q3WQijmv
>>482
なんか諸説あって何が正しいのかよく分からんけど、
少なくともExcelオートメーションに関する限り経験的には
ちゃんと変数に入れるだけで十分でReleaseComObjectは必要ない気が。
0484デフォルトの名無しさん2015/05/19(火) 21:47:37.66ID:0y3JMzOX
何が正しいのかよく分からん場合にどうするか それだけじゃん
0485デフォルトの名無しさん2015/05/19(火) 22:21:44.93ID:WbxBVd4k
>>483
Interop.Excelから使う分にはReleaseComObjectは不要だと思う。
CreateObjectでレイトバインディングする場合は、ドット1つ以上使わないようにして
オブジェクトを全部変数に入れて順番にReleaseComObjectする必要がある。
0486デフォルトの名無しさん2015/05/19(火) 22:51:14.36ID:q3WQijmv
>>485
なるほどそういうものですか。
0487デフォルトの名無しさん2015/05/20(水) 00:38:14.58ID:gX6G9tdz
>>482
試しにやってみましたが、効果ありませんでした。。。
0488デフォルトの名無しさん2015/05/20(水) 00:49:51.58ID:03XLPVPu
それC++でやっても残ったな。quitできないタイミングがあったはず。プロセス落とすのがいいと思う
0489デフォルトの名無しさん2015/05/20(水) 02:42:40.81ID:gX6G9tdz
>>488

ループ処理させながらieのプロセスを落としまくるとPCが不安定になりませんか?
0490デフォルトの名無しさん2015/05/20(水) 06:31:47.64ID:f7NgOdgI
>>487
それは、プロセスが残ったままになる場合の対応だからね。
Quitの前にSleepやDoEvents的なものでウエイトさせると出来たりしないか?
0491デフォルトの名無しさん2015/05/20(水) 08:33:09.09ID:KFMNcacm
IEの操作はvbsでやるに限る
0492デフォルトの名無しさん2015/05/21(木) 07:07:47.85ID:5AlY38lu
初心者がLinq,ラムダ式に手出すのは早いですか?
0493デフォルトの名無しさん2015/05/21(木) 07:28:51.30ID:01TMmBFS
文法も網羅してないのにもう中級者です!ってのもおかしい気がするが
個人的には
0494デフォルトの名無しさん2015/05/21(木) 07:47:19.36ID:MBfknsBq
これらを理解できてたら手を出していい
・デリゲート
・オーバーライド、多態性
・Template Methodパターン、Observerパターン
・IEnumerable<T>の仕組み
・yieldの使い方
これだけわかってりゃLINQやラムダが何やってるのかはだいたい想像がつくはず
0495デフォルトの名無しさん2015/05/21(木) 08:34:54.41ID:/hDcy/Cl
キャプチャの仕組み理解すれば普通に使っていいだろ
0496デフォルトの名無しさん2015/05/21(木) 08:45:38.96ID:il658Xe0
LINQは使うと読み易くなることがあるが
壮大なオナニーLINQは害悪
0497デフォルトの名無しさん2015/05/21(木) 09:16:37.76ID:Tg0bXDwp
なんでや、オナニーに使われるのはLINQに限ったことじゃないやろ

…関数型言語がポエム書きやオナニーに使われるのと同じで
ドヤりたい人を引きつける何かを備えてることは否定しないが
0498デフォルトの名無しさん2015/05/21(木) 12:14:00.62ID:NNS76vjx
コントロールをドラッグして仮の枠を表示して、ドロップ先に線を描くのってどうやってやるの?
一時的にパネルを表示して仮の枠を描いて、ドロップ先もパネルを表示して線を描いておく感じですか?
0499デフォルトの名無しさん2015/05/21(木) 13:12:17.42ID:9WVVlPPq
>>498
何を言ってるのか分かるように書かないと回答来ないよ
0500デフォルトの名無しさん2015/05/21(木) 14:27:40.35ID:/hDcy/Cl
なんとなく分かった

コントロールをドラッグして他のコントロールの場所に挿入するみたいな感じかな
んでドラッグ中はinsertion markを描画すると

ドラッグでコントロールの場所をリアルタイムで変化させちゃうというベタな方法のつもりなのかな?
それだと移動先にマークを書くのが難しくなるわな

ToolStripのAllowItemReorderの実装のようにOLEドラッグ&ドロップでやるのが楽っぽいけど
マークもコンテナ描画イベントで描けるし
かなり凝ればドラッグ中のコントロールを半透明で描画したりも出来るし
0501デフォルトの名無しさん2015/05/21(木) 14:55:03.12ID:MBfknsBq
枠を付けたい場所に最初からPanelを入れまくっておいて枠を非表示にしとくだけでよくね
それなら描画しやすいだけでなくイベントも簡単に拾えるし
0502デフォルトの名無しさん2015/05/21(木) 16:21:42.63ID:Md4oOCiG
ItemsControlクラスのItemsとItemsSourceの違いがよく分かりません。
型とアクセサを見るにItemsSourceは新しく割り当てるとき用で、
Itemsはいま割り当てられているオブジェクトの取得用ってことでしょうか?
ItemsSourceを直接getすると何かマズいんでしょうか
0503デフォルトの名無しさん2015/05/21(木) 16:35:02.91ID:9WVVlPPq
>>502
MSDNライブラリの説明を読んで分からなければサンプルを見る。
普通それで分かる。
0504デフォルトの名無しさん2015/05/21(木) 20:29:48.64ID:MBfknsBq
>>502
ItemsSourceはコレクションをバインドするのに使う。
バインドするコレクションの要素はコントロールではなくて任意の型のオブジェクトで、
そのオブジェクトからどうやってコントロールを作るかをItemTemplateで定義する。
ItemsはItemsSourceの要素から生成されたコントロールのコレクション。
低レベルな制御をする場合以外は基本的にItemsは使わない。
0505デフォルトの名無しさん2015/05/21(木) 21:55:00.16ID:Ps6etXnO
下のようなプログラム

string[,] test = {{ "a","b" }};
ArrayList data = new ArrayList();
data.Add(test);

から、どのようにすれば
ArrayList に格納された string[,] test を取り出すことが出来るでしょうか?

foreach (string[,] func in data) {
Console.Write(data);
}

と書けば取り出せたのですが、
インデックスが0にも関わらず
foreach を使うのは、冗長な気がしており。。。

なお、ArrayList は使うべきでは無いのは解っておりますが、
扱いたい関数の返り値がArrayList のため、
やむなく使っております。

よろしくお願いします。
0506デフォルトの名無しさん2015/05/21(木) 22:01:36.60ID:MBfknsBq
(string[,])data[0]
または data.Cast<string[,]>().FIrst()
dataが空の場合でもコケないようにしたければ上記Firstの代わりにFirstOrDefault
0507デフォルトの名無しさん2015/05/21(木) 22:51:04.66ID:VDw572dB
見た目にエラーが無ければ結果の正しさなどどうでもいい
とはすごい発想ですね
0508デフォルトの名無しさん2015/05/21(木) 22:55:00.04ID:Ps6etXnO
>data.Cast<string[,]>().FIrst()

取り出すことが出来ました。

こんな取り出し方があるのですね。
勉強になります。

ありがとうございます。
0509デフォルトの名無しさん2015/05/21(木) 23:07:34.12ID:d30eeU2g
え?
(string[,])data[0]
でよくないか?
0510デフォルトの名無しさん2015/05/22(金) 09:59:36.37ID:tJUwDPLO
System.timers.timer動作中にRadioButtonを押すと、

有効ではないスレッド間の操作: コントロールが作成されたスレッド以外のスレッドからコントロール 'Button1' がアクセスされました。

と、表示されてしまいます。
timer動作中の中どころかソリューション全体の中でもButton1を使用したり関連付ける部分は書いていないのですが・・・。

何か対応方法等ありますでしょうか?
よろしくお願いします。
0511デフォルトの名無しさん2015/05/22(金) 10:06:46.74ID:AYYhXMHp
Nameプロパティが"Button1"ななんかのコントロールがあんじゃねーの?
あとSystem.Timers.Timerは分かってて使ってんだよね?
0512デフォルトの名無しさん2015/05/22(金) 10:50:15.90ID:tJUwDPLO
>>511
Form1.Designers.csも検索してみましたが、"Button1"が他で使われている形跡はありませんでした。
見た目的には安定するSystem.Windows.Forms.Timerを使用してみたところ、
今度はtimerの中のParallel Forで止まる様になってしまいました。
0513デフォルトの名無しさん2015/05/22(金) 11:35:09.17ID:Eq73D2cp
ユーザーコントロール操作しててその中で使われてるとかそんなんじゃね?
Button1にこだわらずにタイマのイベントハンドラ内でコントロール触ってるかどうかをとにかく確認
0514デフォルトの名無しさん2015/05/22(金) 12:04:17.52ID:tJUwDPLO
とりあえず動作としては解決しました。
Button1を消したら今度はButton2でエラーが発生したので特定のコントロールは関係無かったです。

タイマーの中で余計な動きを見せない為にthis.SuspendLayout() とthis.ResumeLayout() を使っていたので、
こちらで引っかかっていました。
これらのメソッドについて、詳しく調べてみます。
ありがとうございました。
0515デフォルトの名無しさん2015/05/22(金) 13:13:12.96ID:JBwzRzqV
あまり把握出来てないのでデバッグのヒントになりそうなやつ
1.例外ブレークポイント
2.スレッドウィンドウ
これでなんか分かるかも
0516デフォルトの名無しさん2015/05/22(金) 13:16:00.51ID:JBwzRzqV
あととりあえず動かしたいならタイマーでやる事をthis.Invokeに変更
0517デフォルトの名無しさん2015/05/22(金) 14:59:32.83ID:G62CPnRd
基本的な
コントロールは別スレッドから操作してはいけない
と言う事が理解できていない気がする

あとは勝手に別スレッドで実行される状況も理解できてない気も
0518デフォルトの名無しさん2015/05/22(金) 16:29:40.04ID:1VpTopWF
>>510
SynchronizingObject

つ ttp://www.cactussoft.co.jp/Sarbo/divCompTimerEvntCS.html
0519デフォルトの名無しさん2015/05/24(日) 20:08:10.21ID:KArwiYHk
VS2013です。
pictureBoxにLoadする画像の上にグリッドを描画したいです。
DrawLineで線分を描画することはできたのですが、破線を描画するにはどうすれば良いでしょうか?
MSDNでGraphicsクラスのメソッドを見てきたのですが、該当するものが無いようです。
0520デフォルトの名無しさん2015/05/24(日) 20:27:32.93ID:KArwiYHk
すみません解決しました
0521デフォルトの名無しさん2015/05/25(月) 04:35:31.71ID:v33s9jMH
質問です
Javaのsynchronized付きのメソッドを含むクラスをC#に移植しようとしているのですが、
GuardedSuspensionパターンで

Task.Run(() => new Task(ClientThread));
Task.Run(() => new Task(ServerThread));

とやるとすぐにプログラムが終了してしまいます

これを

Thread cl = new Thread(new ThreadStart(Client));
new Thread(new ThreadStart(Server));

とやると正常動作します

Taskはすぐに終了してしまうのでしょうか?
0522デフォルトの名無しさん2015/05/25(月) 07:41:03.83ID:R3oTKNZR
プロセスにフォアグラウンドスレッドが存在しなくなると
バックグラウンドスレッドがまだ処理中でもプロセスは終了してしまう
これが原因ではないか

Taskは内部でスレッドプールを使っているが
スレッドプールのスレッドは全てバックグラウンドスレッドだ
フォアグラウンドスレッドが欲しいなら、自分でThreadを作成するべきだ

以下参考資料
https://msdn.microsoft.com/ja-jp/library/h339syd0%28v=vs.110%29.aspx
https://msdn.microsoft.com/ja-jp/library/0ka9477y(v=vs.110).aspx
0523デフォルトの名無しさん2015/05/25(月) 13:34:14.87ID:tMcWag84
>>522
ありがとうございます
疑問がすっきり解決しました
Taskももう少し改良して欲しいですね・・・
0524デフォルトの名無しさん2015/05/25(月) 13:48:49.67ID:63j168JE
改良?
0525デフォルトの名無しさん2015/05/25(月) 13:51:40.44ID:rowGmHFY
Threadのようにいろいろ機能はあるけどThreadよりも使い勝手が良い、みたいな
0526デフォルトの名無しさん2015/05/25(月) 13:54:40.42ID:5Xzz88z5
TaskScheduler自前で作りゃいいだけだけど
そもそもメインスレッドで待てばいいだろハゲ
0527デフォルトの名無しさん2015/05/25(月) 14:34:51.52ID:buubow6H
.NET3.5ベースで開発しています
あるabstractクラス内のstaticメソッドを動的に舐めて
Dictionary<"メソッド名", メソッド型>に突っ込んでいく処理でつまづいております

http://codepad.org/uyDTOTDA

取得したメンバを実行するのはInvokeMemberすればいいのですが
今回のケースで探してもなかなか出てきませんでした
よろしくおねがいします
0528デフォルトの名無しさん2015/05/25(月) 14:52:20.57ID:wGou5fq6
Task[] tsk = new Task[] {Task.Factory.StartNew(new Client),
                 Task.Factory.StartNew(new Server)
};
Task.WaitAll(tsk);

こういう風に書くと正常に動きました
お騒がせしました
そりゃMainに書いてりゃMainが終了すれば呼びだされたTaskも強制停止されて
終了してしまう事を忘れていました
0529デフォルトの名無しさん2015/05/25(月) 15:19:52.31ID:MKPJRGG4
>>527
MethodInfo.CreateDelegate
0530デフォルトの名無しさん2015/05/25(月) 15:31:25.76ID:uOKH4JiO
>>527みたいなことやるならMEF使えばいいのに
05315272015/05/25(月) 15:44:28.52ID:buubow6H
>>529,530

リプライありがとうございます
ご提案いただきましたMethodInfo.CreateDelegate、MEFは、残念ながら.NET 4からの機能です

https://msdn.microsoft.com/ja-jp/library/hh194376%28v=vs.110%29.aspx
https://msdn.microsoft.com/ja-jp/library/dd460648%28v=vs.110%29.aspx
0532デフォルトの名無しさん2015/05/25(月) 16:54:45.18ID:MKPJRGG4
ああ、そうだったか
じゃあDelegate.CreateDelegateのほうで
05335272015/05/25(月) 17:09:02.90ID:buubow6H
>>532
ありがとうございます!
Delegate.CreateDelegateでいけました!

foreach (MemberInfo m in typeof(Module).GetMembers(BindingFlags.Static | BindingFlags.Public)) {
var del = System.Delegate.CreateDelegate(typeof(method_type), m as MethodInfo);
methods.Add(m.Name, del as method_type);
}
0534デフォルトの名無しさん2015/05/25(月) 23:04:17.52ID:+UFfY2ty
Windowsアプリケーションを作成しているのですが、
private void button_Click(object sender , EventArgs e){ ~~~ }
button.Click += new EventHandler(this.button_Click);
と記述してあるのですが、内部的にどのような処理が行われているのでしょうか。
0535デフォルトの名無しさん2015/05/25(月) 23:26:51.92ID:uOKH4JiO
>>534
button.Click += new EventHandler(…)は
button.add_Click(new EventHandler(…))と同じ
new EventHandler(this.button_Click)はJavaなら
new EventHandler {
 public void Invoke(object sender, EventArgs e) { this.button_Click(sender, e); }
}
に相当する
だからといって何がしたいのかは分からないだろうけど、それはObserverパターンを勉強しろ
0536デフォルトの名無しさん2015/05/26(火) 03:24:56.20ID:fbPfP2jD
TrackBarで、つまみをつかんでいる(つまみの色が変わっている)
かどうかの判定ってできませんか?
0537デフォルトの名無しさん2015/05/26(火) 03:30:46.44ID:fbPfP2jD
あと、チェックボックス付のListViewで、1行選択の解除をやりたいんだけど、
ListViewHitTestInfoでクリックしたサブアイテムのindexを取る方法ってありますか
0538デフォルトの名無しさん2015/05/26(火) 04:12:33.48ID:Ihaek877
>>536
MouseDownとMouseUpのイベントを発生させるといいかも

>>537
こんなのは?

private void listView1_MouseDown(object sender, MouseEventArgs e)
{
ListViewHitTestInfo info = listView1.HitTest(new Point(e.X, e.Y));
int row = info.Item.Index;
int col = info.Item.SubItems.IndexOf(info.SubItem);
label1.Text = "row = " + row + ", col = " + col;
}
0539デフォルトの名無しさん2015/05/27(水) 21:58:33.29ID:XkW9VjQH
WebClientで作成したインスタンスって破棄しないと影響でかいですか?
数秒毎にループでインスタンス作成しては読み取る処理してるんですが、同期処理のせいか重いです。非同期処理はこれから実装を検討してるんですが。
0540デフォルトの名無しさん2015/05/27(水) 22:21:23.93ID:ihueyhra
>>539
放置プレイで何の問題も起きてないが。
0541デフォルトの名無しさん2015/05/27(水) 22:35:44.05ID:aznGlafD
数秒毎って、攻撃と思われないように気をつけろよ
0542デフォルトの名無しさん2015/05/27(水) 22:40:12.30ID:1SVgoR5i
相談室でやってろよ阿呆君
0543デフォルトの名無しさん2015/05/27(水) 22:53:17.63ID:ihueyhra
>>539
毎回disposeするとHTTP Keep Alive効かないか
0544デフォルトの名無しさん2015/05/29(金) 14:16:08.87ID:SHzqDeqo
>>543
効くだろ。
0545デフォルトの名無しさん2015/05/29(金) 19:10:07.05ID:d869LRaF
>>544
Disposeでコネクション切断されるだろ。
0546デフォルトの名無しさん2015/05/29(金) 20:02:27.61ID:QF6UrsQ/
544のコンピューターでは切断されたんだろうな
0547デフォルトの名無しさん2015/05/29(金) 20:48:57.06ID:kXESabcL
で、結局gc任せでいいの?
0548デフォルトの名無しさん2015/05/29(金) 21:01:06.10ID:+zWW11JT
Disposeによって内部のコネクションプールに戻されるとかじゃねぇの?
Disposeはしといた方が良いと思う
0549デフォルトの名無しさん2015/05/29(金) 21:34:23.34ID:1xJgnWA+
ソース読むとWebClientはただのファクトリーで
Disposeは何もやってないように見える
0550デフォルトの名無しさん2015/05/30(土) 14:56:19.16ID:DRtbRWlm
IDisposeを解放しないバカは死ね
ただしasync/awaitは除く
0551デフォルトの名無しさん2015/05/30(土) 17:06:27.61ID:UmMhJR2/
開放しないとどのような弊害が起きるんでしょう。
0552デフォルトの名無しさん2015/05/30(土) 18:10:40.93ID:C+IOxaVu
設計上意図されないタイミングで開放するバカもいる
0553デフォルトの名無しさん2015/05/30(土) 18:15:33.23ID:49aSQ4HZ
一般的なIDisposable実装ではファイナライザでリソース解放するようになっているのでパフォーマンスが低下する
0554デフォルトの名無しさん2015/05/30(土) 18:28:02.76ID:2+UGB+5g
>>553
適当なこと言うなよ
0555デフォルトの名無しさん2015/05/30(土) 18:55:49.49ID:y5cl7Y1T
ファイナライザを持つオブジェクトは2回GCしないと消えないので、
GCにかかる時間や頻度、そしてメモリ使用量を増加させる原因になる
Disposeが明示的に呼ばれた場合はSuppressFinalizeでファイナライザを無効化することが推奨されてるから
明示的にDisposすることで結果としてパフォーマンスの向上につながる
0556デフォルトの名無しさん2015/05/30(土) 19:37:57.72ID:vFEdwQTI
IDisposable実装してるクラスは明示的にdisposeした方が良いのが多いが
コネクションプール使ってるヤツは物理的にクローズされてパフォーマンスが落ちるのでものによるな。
0557デフォルトの名無しさん2015/05/30(土) 19:45:22.76ID:u87GwTIT
>>556
例えば?w
0558デフォルトの名無しさん2015/05/30(土) 19:53:15.04ID:zOKa2SxY
常にConnectionと一体になってるような粒度のオブジェクトしか設計したことないんやろ
0559デフォルトの名無しさん2015/05/30(土) 20:57:24.50ID:vFEdwQTI
>>557
SqlConnection クラスとか
0560デフォルトの名無しさん2015/05/30(土) 20:58:45.95ID:d5Z165ny
Disposeしたのに繋がってたら嫌じゃね?
0561デフォルトの名無しさん2015/05/30(土) 20:58:57.87ID:vFEdwQTI
>>558
どういう意味?
0562デフォルトの名無しさん2015/05/30(土) 21:03:22.68ID:mQMhglYl
SqlConnectionは Dispose = プールに返却 だからDisposeは必須だぞ
使い終わりを検知する方法がないのにどうやって使い回してると思ってたんだ
0563デフォルトの名無しさん2015/05/30(土) 21:26:23.97ID:zOKa2SxY
落ちもついたところで今日はお開き
0564デフォルトの名無しさん2015/05/30(土) 21:43:46.63ID:d5Z165ny
おやすみ〜
0565デフォルトの名無しさん2015/05/30(土) 22:55:48.95ID:vFEdwQTI
>>562
コネクションクローズしとくだけで良いだろ。
どうせプロセスが終ればプロセス毎解放されるし。
0566デフォルトの名無しさん2015/05/30(土) 23:13:09.23ID:nd5twrZx
>>555
>ファイナライザを持つオブジェクトは2回GCしないと消えない

その珍妙な説のソースは?
0567デフォルトの名無しさん2015/05/30(土) 23:46:38.97ID:T/VeDaq5
>>566
「ソースはMSDN」くらい省略させてくれよ、常識だろ?
https://msdn.microsoft.com/ja-jp/library/ee787088.aspx
0568デフォルトの名無しさん2015/05/30(土) 23:56:09.15ID:oQYe81Za
ソースが出せない人の常套句「ソースはMSDN」
もちろんリンク先にはソ書かれていない
0569デフォルトの名無しさん2015/05/31(日) 00:36:38.12ID:9foGZIMb
MSDNって言われても初心者的にMSDNはわかりにくいんだよなぁ
0570デフォルトの名無しさん2015/05/31(日) 00:55:02.32ID:QGRYrQik
参照型プロパティの初期化について質問です。

■実装方針
1.プロパティのnewは1度きりで、インスタンスは引き継ぐ。
(初期化しても引き継ぎたい値のコピーやnew処理コスト、コード量増加抑止を目的)
2.プロパティのInitializeは毎回実行。
3.Initializeの引数はクラス毎に異なる。

■実装例
http://ideone.com/nQJ6VZ

■質問内容
1.Initialize内部では例外が無い前提で実装するのは、多人数開発においてアリか。
2.Initializeの成否でなく、thisを戻り値にする設計は、多人数開発においてアリか。
3.「m1 =(m1 ?? new M1()).Initialize」の部分が定形的なので、もっと省略したり単純化する方法はあるか。
4.実装方針に問題点はあるか?

以上、部分的にでもご意見いただければと思います。
0571デフォルトの名無しさん2015/05/31(日) 01:29:44.63ID:MabpreS8
>>570
何のために、このような回りくどいやり方をするのでしょうか?
0572デフォルトの名無しさん2015/05/31(日) 02:01:48.74ID:rnPMXZrB
>Initializeは毎回実行

初期化を複数回呼び出すことがおかしい。
何でInitializeがコンストラクターと別なの?
0573デフォルトの名無しさん2015/05/31(日) 06:45:17.54ID:EczZHdOg
>>566
ごめんなさいは?
0574デフォルトの名無しさん2015/05/31(日) 07:03:44.63ID:EczZHdOg
>>570

1. 例外がスローされる可能性を排除しては「いけない」し、そもそも「できない」。多人数だろうが個人だろうが。
2.
インスタンスを返すこのようなメソッドは静的にしたくなる。
成否と言ってるけどそもそもInitializeは失敗するのか? 失敗したインスタンスはどうするのか?
Initializeという名前だけど、毎回実行なら初期化というより単に情報を与えているだけな気が。
3. そういうレベルじゃなくね? m1, m2は初期化前に触られたらどうなんの?
4. なんか筋が悪いコードに見える
0575デフォルトの名無しさん2015/05/31(日) 07:13:17.54ID:crGWWGGX
コンストラクタで例外投げたくないという話なら分からないでもないが、
Initializeでも投げないとなると、初期化に失敗してる可能性をプロパティ使用時に考慮しなければならない
Initialize呼び忘れのリスクもあるし、ミスを非常に生みやすいクソ設計といえるね
0576デフォルトの名無しさん2015/05/31(日) 08:24:58.82ID:HdJipRY3
ビルダーパターンとメソッドチェーンに妙な感化でもされたのか
0577デフォルトの名無しさん2015/05/31(日) 08:26:31.55ID:E4eD717b
初期化がメソッドチェーンに含まれる設計がクソ
初期化はコンストラクターでやれ
05785702015/05/31(日) 13:31:30.99ID:QGRYrQik
皆さん、ご意見ご指摘ありがとうございます。
後出しになってすみませんが、まず質問時の補足をさせていただきます。

■状況
現在WPFを勉強中です。
もともと初期化を以下のイメージで実装していました。
これでは、インスタンスの作成とモデル毎に異なる初期化の判別が冗長だと感じたのが今回の質問のきっかけです。
m1 = m1 ?? new M1();
m1.Initialize(hoge,"foo");
m2 = m2 ?? new M2();
m3 = m3 ?? new M3();
if (m3.IsInitialize) {
m3.Reset(dst);
}
else
{
m3.Initialize(dst);
}

■考え方
質問時のコードは、次の考え方を含んでいました。
・コンストラクタでの初期化が適当でないモデルを想定。(継承、シリアル化、バインディング、非同期、他)
・初期化⊃リセットと考え、Initializeにリセットの意味合いを持たせる。
・処理の抽象化とコード量を短縮することを目的に、Initializeをメソッドチェーンにする。
・初期化(リセット)が失敗した場合、エラー度合(処理を進めるのか終了するのか)は、タイミングや他モデルの状態に依存し、
初期化時に例外スローはせずにプロパティ参照時にエラー度合をチェックすべき。

続きます。
0579デフォルトの名無しさん2015/05/31(日) 13:34:53.01ID:QGRYrQik
>>578の続きです。
今回私の考え方に誤りがあることが分かり、勉強になりました。

■反省
ご指摘を受けて、次の是正が必要だと認識しました。
・コンストラクタでの初期化が適当でないものだけ、Initializeを作成する。
・初期化とリセットを混同せず、別々に定義する。
・初期化でのメソッドチェーンはやめる。
・初期化失敗時に例外を投げて問題ない、エラー度合を判断できるクラス設計にすべき。

■お願い
反省点を認識したものの、具体的な実装が浮かびません。
上記コードのようなさまざまな参照型プロパティの初期化が必要な場合、どう効率的に実装するかご提示いただけないでしょうか?
Initializeを作らないというアプローチでもかまいません。

抽象的なお願いとなりますが、ご助力ください。
0580デフォルトの名無しさん2015/05/31(日) 15:14:08.09ID:HdJipRY3
このモデルは本当にコンストラクタでの初期化が適当でないんだろうか
0581デフォルトの名無しさん2015/05/31(日) 22:23:16.53ID:GgyUUQ/3
C#を使うなら諦めろということだ。どうしてもいやならC++を使えばよい。
placement newがある
0582デフォルトの名無しさん2015/05/31(日) 22:36:02.70ID:DItVGOoj
プロパティを普通に作って??は消せよ
0583デフォルトの名無しさん2015/06/01(月) 13:53:32.03ID:ZLkEb6tw
一つのクラスに色々詰め込みすぎだろ
一緒に初期化できないなら別のクラスにするのが筋
例えば永続化層は単なるデータとして分離しろ
0584デフォルトの名無しさん2015/06/02(火) 10:57:10.02ID:+73WPJDz
バックグラウンドで文字列の置換を行っているのですが
DoWorkの引数を複数にした場合の書き方が分からず困っております。
どうすれば正常に動くのか教えてください。

http://ideone.com/ZATGGK
0585デフォルトの名無しさん2015/06/02(火) 11:50:01.20ID:3K9K5nvj
this.backgroundWorker1.RunWorkerAsync(new object[] { this.workerArgument, this.workerArgument2 });
↓
と引数を設定したんなら
↓
object[] obj = (object[])e.Argument;
string str = (string)obj[0];
string str2 = (string)obj[1];
じゃね?

しかしFormがBackgroundWorkerを公開しちゃってるしよろしくないね
BackgroundWorkerなんて投げ捨ててTask使おうぜTask
0586デフォルトの名無しさん2015/06/02(火) 12:42:25.68ID:+73WPJDz
>>585
教えていただいたとおりにしたところ正常に動作しました。
難しそうですがTaskというものも調べてみようと思います。
どうもありがとうございました。
0587デフォルトの名無しさん2015/06/02(火) 20:50:03.01ID:pCEddnCf
ソレでもいいけど、Tuple使うのが常套手段じゃね?
http://www.atmarkit.co.jp/fdotnet/dotnettips/1024tuple/tuple.html
0588デフォルトの名無しさん2015/06/02(火) 21:18:24.64ID:16XnEFNb
>>587
これってメソッドとかに渡す時、受け側はどう宣言するの?
0589デフォルトの名無しさん2015/06/02(火) 21:29:11.90ID:Km0g2dva
asyncじゃあかんの?
0590デフォルトの名無しさん2015/06/02(火) 23:36:06.84ID:Xy74cFV6
まだTupleとか言ってるバカがいるのか
タプルってのは var name, age = GetNameAndAge(); のようにして使うもんであり、
間違ってもitem1とかいう意味不明な名前でコードを暗号化するためのものではない
言語レベルでのサポートがない言語で使うべきではない
0591デフォルトの名無しさん2015/06/03(水) 01:02:06.86ID:N6yD348L
dynamicはアカンの
0592デフォルトの名無しさん2015/06/03(水) 04:04:12.25ID:+cwo1qGY
item1とか適当な名前でも問題ないぐらいの処理だからTuple使うわけで
ちゃんとした処理ならちゃんとしたクラス作るか匿名クラスかでやるわ
0593デフォルトの名無しさん2015/06/03(水) 07:15:25.31ID:Wh0ON4xv
もう質問は解決してますよ
思想の話がしたければ電車に飛び込んだ後、地獄でゆっくりやれよクソカス
0594デフォルトの名無しさん2015/06/03(水) 07:15:29.90ID:amqoRlyA
ほうほう
では匿名クラスを使ったサンプルとやらを見せて貰おうか
0595デフォルトの名無しさん2015/06/03(水) 07:27:33.67ID:Wh0ON4xv
地獄でやれって言ってんだろ痰壷野郎
0596デフォルトの名無しさん2015/06/03(水) 07:40:18.45ID:QMuypoEX
TupleはF#のために追加されただけだよ
C#も言語レベルでサポートしてほしい派だけど、
Tuple.CreateやらItem1やらを喜んで使うのはセンスを疑うわ
0597デフォルトの名無しさん2015/06/03(水) 07:42:09.25ID:u1dB80rd
ウンコはトイレでしてもらえますか?臭いですよ
0598デフォルトの名無しさん2015/06/03(水) 17:26:40.68ID:o7sLDqXU
Tupleは内部の隠ぺいされた範囲内でテンポラリーとして仕方なく使うものじゃないの?
0599デフォルトの名無しさん2015/06/03(水) 18:57:18.34ID:QadS+ygN
型と順序だけ決まっていればいいならTuple
メンバーに名前を付けたいならクラスを定義する
名前を付けたいけど取り出すコードが近くにあるテンポラリなら匿名オブジェクト
名前をつけたいけどクラスを定義するのがダルいならdynamic

タプル型は変数に名前が欲しいかどうかであって、チンポラリとか関係無い
0600デフォルトの名無しさん2015/06/03(水) 21:16:51.33ID:90whoNkH
>>598
クラス内部で使うデータ構造としてお手軽便利に使っておりますが。
0601デフォルトの名無しさん2015/06/03(水) 22:09:17.51ID:RjLZjXm6
IComparerとかIEqualityComparerを実装するのに class と struct のどっちがお勧め?

継承する必要がないなら struct の方がいいんじゃないかと思うんだが
0602デフォルトの名無しさん2015/06/03(水) 22:15:57.39ID:tAqP6WbY
>>601
その問題設定そのものが変
0603デフォルトの名無しさん2015/06/03(水) 22:17:10.12ID:QMuypoEX
本当にそれだけの条件しか考慮しないならclassだろう
CompareやEqualsの呼ばれる頻度が高いならstructはコピーで遅くなる可能性があるし
struct+interfaceはボックス化避けるためにジェネリック多用しなきゃいけなくて不便だし
特殊化でメモリも食う
0604デフォルトの名無しさん2015/06/04(木) 01:05:37.04ID:hSX2tQGq
ソートメソッド内でIComparerを引数にするメソッドが呼ばれてるからコピーが発生しまくるってこと?
Array.Sortの実装見ただけだけど
0605デフォルトの名無しさん2015/06/04(木) 01:17:57.75ID:nTFCM4h6
それだけの条件って言うけど
どういう条件下ならstructを選ぶの?
選ぶ理由が全くない気がする

継承云々は問題に聞こえないし(sealedしとけよ)
0606デフォルトの名無しさん2015/06/04(木) 01:21:11.61ID:pwnhvS/Q
だから問題設定がそもそも変なんだってw
そうとしか言いようがない。
0607デフォルトの名無しさん2015/06/04(木) 08:12:26.92ID:hSX2tQGq
structの方がインスタンス化が早いので

でもソートメソッド内でコピーが発生する実装になってたらデメリットになるなと
0608デフォルトの名無しさん2015/06/04(木) 08:32:19.38ID:xuWz3vjX
何か達成したい目的があって、IComparerを実装するのはその手段だろ?
IComparerを実装するのにどっちがいいかとか意味不明すぎる
Q. 新しい礼服を買ったので週末着ていきたいです。どこに行けばいいですか?
A. 葬式
みたいな質問
0609デフォルトの名無しさん2015/06/04(木) 08:46:15.14ID:bfstKBEm
話の内容が理解できないなら無理してレスしなくてもいいんだよ?
0610デフォルトの名無しさん2015/06/04(木) 10:20:31.70ID:xy19AX+E
条件提示してんだからそれについて解答すりゃええやん
どういう条件に変わればこっちを選ぶとか蛇足もいいとこ
答えられないから自分の答えられる実装の方がいいとかも論外
0611デフォルトの名無しさん2015/06/04(木) 10:36:35.29ID:SACPq2eU
御託並べていい気に浸ってんじゃねえよ無職ハゲが
0612デフォルトの名無しさん2015/06/04(木) 11:09:16.46ID:xuWz3vjX
そもそも条件なんか提示されてないに等しいだろ
俺は>>603だが、インターフェイスを強調するからには使用頻度が高いのだろうとか
恐らくパフォーマンスを重視しているのだろうとか
多くの勝手な想像を基にした回答だ
こういう意味不明な質問はまず目的を訊くのが一番手っ取り早くて確実なんだよ
0613デフォルトの名無しさん2015/06/04(木) 11:45:56.80ID:xy19AX+E
classとstructのどっちがいいかと聞かれたらclassと答えとけばいいんじゃないかね
理由
コピーにかかるパフォーマンスとか計算できるぐらいなら質問してこないと判断
0614デフォルトの名無しさん2015/06/04(木) 12:13:28.56ID:03L4l+Cb
理由になってないな。
質問者の質問がトンチンカンなら答える方もトンチンカンときてる
0615デフォルトの名無しさん2015/06/04(木) 12:16:51.46ID:6LXNtE4C
                     /j
                   /__/ ‘,
                  //  ヽ  ', 、
                    //    ‘     
                /イ       ', l  ’     …わかった この話はやめよう
               iヘヘ,       l |  ’
               | nヘヘ _      | |   l    ハイ!! やめやめ
               | l_| | | ゝ ̄`ヽ | |〈 ̄ノ
               ゝソノノ   `ー‐' l ! ¨/
            n/7./7 ∧        j/ /     iヽiヽn
              |! |///7/:::ゝ   r===オ        | ! | |/~7
             i~| | | ,' '/:::::::::::ゝ、 l_こ./ヾ..     nl l .||/
             | | | | l {':j`i::::::::::::::::`ーr '         ||ー---{
              | '" ̄ ̄iノ .l::::::::::::::::::::::∧       | ゝ    ',
      , 一 r‐‐l   γ /、::::::::::::::::::::::::〉ー= ___  ヘ  ヽ   }
    / o  |!:::::}     / o` ー 、::::::::::::i o ,':::::::{`ヽ ヘ     ノ
   / o    ノ:::::∧   /ヽ  o  ヽ::::::::| o i::::::::ヽ、 /   /
   /    ノ::::::/    /::::::::ヽ  o  ヽ:::| o {::::::::::::::Υ   /
0616デフォルトの名無しさん2015/06/04(木) 13:00:46.81ID:+mmsYIdN
マンガ脳の恐怖、まで読んだ。
0617デフォルトの名無しさん2015/06/04(木) 14:25:28.39ID:18shCTe3
お前らVSはいくつつかってる?オラは2010だべ
0618デフォルトの名無しさん2015/06/04(木) 15:17:58.42ID:ualL+iXH
2013 Community
Gitも使えるんで
0619デフォルトの名無しさん2015/06/04(木) 16:04:23.30ID:ziyE/dl1
2010個もVS使うのかー
0620デフォルトの名無しさん2015/06/04(木) 16:42:30.85ID:9wvQs+dO
典型的コミュ障
0621デフォルトの名無しさん2015/06/04(木) 17:18:29.15ID:d0k9FDEW
2013ExpressアンインストせずCommunity入れたら、テンポラリにゴミが徐々に溜まってく不具合にあって
きちんとインストールし直すのに大変だった。
0622デフォルトの名無しさん2015/06/05(金) 00:09:26.15ID:TGIdieIs
インターフェースからのメソッド呼び出しの質問

structをキャストしたインターフェースからのメソッド呼び出しが、classをキャストしたインターフェースからのメソッド呼び出しより遅いのは何故?
structのキャストはボックス化なので遅いのは分かるけど、メソッド呼び出しも?

>>601だが、IComparerをstructで実装するとソートが遅いのは分かった
くだらん質問してすまんかった
http://ideone.com/V6biVn
0623デフォルトの名無しさん2015/06/05(金) 12:14:41.11ID:ArINQc3s
メソッドに隠し引数としてインスタンスが渡るときにアンボクシングが発生するからだろ
滅多に使わないから最適化も甘いんだろうな
structのときは代わりにジェネリックのwhere使うとボックス化を回避できるしメソッド呼び出しも速いよ
0624デフォルトの名無しさん2015/06/06(土) 01:11:05.16ID:04NM/uA4
3つの値を保持できるコレクションクラスとか・・・ないですよね・・・?
KEY, val1, val2 みたいな・・・
0625デフォルトの名無しさん2015/06/06(土) 04:49:06.42ID:F9D1Moux
Dictionary<TKey, TValue>のTValueを自前クラスもしくはTupleにするとか、KeyedCollection<T>を実装するとかいくらでも
KEYが特別な意味を持たないならList<T>でも
0626デフォルトの名無しさん2015/06/06(土) 05:01:52.19ID:04NM/uA4
>>625
あーなるほど・・・
ありがとうございました
0627デフォルトの名無しさん2015/06/06(土) 11:55:17.80ID:DogIJv+Z
C#で作ったFormアプリの画面デザインが
そのままhtmlに変換できてWebページに
簡単に作り変えられるような方法やツールは無いですか?

今、初めてhtml書いてWebページ作っているんですが難しいので困っています。

C#のformなら簡単に作れるのでそれがそのままhtmlに変換できればいいのですが。
情報お待ちしています。
0628デフォルトの名無しさん2015/06/06(土) 12:03:44.31ID:j3Nw075S
ホームページ作成ソフト使え
0629デフォルトの名無しさん2015/06/06(土) 12:06:50.35ID:9TAyXKx2
なかなか(C#スレとしては)新機軸な質問だな
0630デフォルトの名無しさん2015/06/06(土) 12:19:39.72ID:JRwr9maH
html手書きしてんの?
勉強になるから続けなさい
0631デフォルトの名無しさん2015/06/06(土) 12:37:08.53ID:jpaAX+4P
WebアプリでHTML/CSS/JavaScriptは三種の神器ではないか。
HTMLが手書き出来ないとはプログラム業界も末世じゃのぅ。
0632デフォルトの名無しさん2015/06/06(土) 12:58:01.30ID:tUGAzLyi
そこでWPFの出番!?
0633デフォルトの名無しさん2015/06/06(土) 13:19:53.17ID:9TAyXKx2
お呼びじゃないのよカスWPF
0634デフォルトの名無しさん2015/06/06(土) 18:29:11.73ID:G9GytojR
そろそろWPF出てから10年たつね
0635デフォルトの名無しさん2015/06/06(土) 19:26:53.90ID:NFG7nQDY
WPFは頭良くないと使えないよな
0636デフォルトの名無しさん2015/06/06(土) 19:31:30.44ID:jpaAX+4P
Windows/Web FromがExcelでWPF/HTMLがWordって感じだな。
Wordはバカには使えないw
0637デフォルトの名無しさん2015/06/06(土) 19:42:24.55ID:zNSHofQv
>>636
普通逆だと思うけどw
0638デフォルトの名無しさん2015/06/06(土) 19:42:40.89ID:NlzRnH5v
HTMLというかWeb MVCはWPFに比べりゃバカ向きだぞ
バインディングなんて複雑な概念がなく、コード書いてHTMLをテキストで吐き出すだけという低脳仕様
0639デフォルトの名無しさん2015/06/06(土) 19:53:31.02ID:9TAyXKx2
頭が良かったら壊れたアーキテクチャなんか選びませんわ
0640デフォルトの名無しさん2015/06/06(土) 20:16:44.33ID:jpaAX+4P
>>638
世の中、低脳ばかりだからWPFが流行らないと言いたいのか。
0641デフォルトの名無しさん2015/06/06(土) 20:22:45.51ID:NlzRnH5v
>>640
WPFが流行らないのは単に学習コストを正当化できないからでしょ
業務アプリに高度なビジュアル表現なんて必要ないし、
バインディングを活用して作るような量産型画面はWebで十分な場合が多い
0642デフォルトの名無しさん2015/06/06(土) 21:38:39.71ID:H1DMvpQ4
MSは本質的に違うもものを統合しようとして失敗する癖があるな。
シェル+ブラウザ
デスクトップアプリ+Webアプリ
デスクトップ用OS+タブレットOS
他にも有る?いっぱいあるはず。
0643デフォルトの名無しさん2015/06/06(土) 21:44:11.22ID:eXSgfOqh
企業でwpfの採用が進まず全く普及していない
需要が皆無なので学習者も増えずますます普及が遠のく
こんな悪循環か
0644デフォルトの名無しさん2015/06/06(土) 21:48:12.15ID:gPTqz+5d
>>641
MVVMガーとかもあるけど結局パフォーマンスでしょ。
全てを保持モード一本で押し切るやり方は現実的じゃないのに結局それを中の人が認められなかった。
0645デフォルトの名無しさん2015/06/06(土) 21:59:05.28ID:F9D1Moux
wpfはフォントによって文字が滲むのがな…
0646デフォルトの名無しさん2015/06/06(土) 22:40:15.43ID:2gM0oTMR
>>642
MSに限らんが、Webのモデルをデスクトップに持ち込んでくるようになって
いろいろ使いづらくなったよな。
0647デフォルトの名無しさん2015/06/06(土) 23:05:39.13ID:jpaAX+4P
>>645
高DPI対応にするにはWPFが必要なのに文字が滲むとは?
0648デフォルトの名無しさん2015/06/06(土) 23:21:52.95ID:9TAyXKx2
TextFormattingModeとかTextRenderingModeを指定してないんでは
あとはUseLayoutRoundingとか?

たかがテキストくらいデフォルトでベストなソリューション提供しろよ
間抜けかお前はって思うけど
0649デフォルトの名無しさん2015/06/07(日) 00:01:26.36ID:41WPBkin
WPFが悪いわけではないが
96dpiの糞モニターでクリアタイプは目に良くない
WinFormの糞フォントが最適
0650デフォルトの名無しさん2015/06/07(日) 00:33:29.83ID:3tKyuKE8
クリアタイプはGDI+の機能ですw
0651デフォルトの名無しさん2015/06/07(日) 03:30:23.96ID:p+QzNCcW
wpf+net3.5で文字.や画像が滲んだのは遠い記憶
0652デフォルトの名無しさん2015/06/07(日) 09:20:51.82ID:bLu9Dp3Q
ポストグレスに、データをインサートするため、
下記のようなコードを書いたのですが、
DataRowの"b"に該当する列にnullが出現すると、
「オブジェクトをDBNullから他のタイプにキャストすることはできません。」と
怒られてしまいます。

var com = new NpgsqlCommand(sqlStr, conn);
com.Parameters.Add(new NpgsqlParameter("a", DbType.String) { Value = row.Field<string>("a") });
↓オブジェクトをDBNullから他のタイプにキャストすることはできません。
com.Parameters.Add(new NpgsqlParameter("b", DbType.Double) { Value = Convert.ToDouble(row["b"]) });

どのようにすれば回避出来るでしょうか。
よろしくお願いします。
0653デフォルトの名無しさん2015/06/07(日) 09:31:34.43ID:8NCQzbFC
不具合でも理不尽な仕様でもなく純粋にお前が間違ってるんだから回避という言い方はやめろ
row.Field<double?>(“b”)
0654デフォルトの名無しさん2015/06/07(日) 09:34:38.34ID:XmKcFN/K
>>642
統合=シームレス=先進的!便利!普及!

みたいな思想が根底にあるんだと思うわ
違い(セキュリティの深刻度・UIのレベル)を完全に吸収できればそれもいいんだろうけど
中途半端に終わってるよな
0655デフォルトの名無しさん2015/06/07(日) 14:29:09.63ID:bLu9Dp3Q
>>653
com.Parameters.Add(new NpgsqlParameter("b", DbType.Double?) { Value = row.Field<double>("b") });

という書き方は試していたのですが、DataRow側をキャストしてやらないと
意味が無いんですね。

よくよく考えると、なるほどと思うのですが、
ハマると何がおかしいのかも解らなくなり。

基本をしっかり勉強しようと思います。
ありがとうございます。
0656デフォルトの名無しさん2015/06/07(日) 14:38:28.12ID:bLu9Dp3Q
Silverlightが終わった時点で、
WPFもバッサリ切り捨てて欲しいと思う今日この頃。

WEBアプリと共通化できない時点で、WPFの魅力は
8割くらい消えたと思う。

余計なプラットフォームを増産するくらいなら、
フォームアプリのUIをリッチに進化させてくれるだけで
十分なのになぁ。
0657デフォルトの名無しさん2015/06/07(日) 15:47:59.15ID:NaIbOULp
フォームを切り捨てるべき
0658デフォルトの名無しさん2015/06/07(日) 16:28:11.24ID:bLu9Dp3Q
>フォームを切り捨てるべき

1000件を超えるデータをDataGridに表示したとき、
スクロールが満足に出来なくて、
WPFに未来は無いと思ったけど、
やり方によって早くなるのアレ。
0659デフォルトの名無しさん2015/06/07(日) 16:43:06.02ID:FHoyYiwS
そらそんなの重いに決まってる。仮想ビューにしとけよ
0660デフォルトの名無しさん2015/06/07(日) 16:54:54.38ID:XmKcFN/K
ワロタ
0661デフォルトの名無しさん2015/06/07(日) 17:32:42.45ID:LuDRIQ04
ジェネリックスで特定のインターフェイスを食わせると、
そいつのNullオブジェクトを作って返すメソッドて可能?
0662デフォルトの名無しさん2015/06/07(日) 17:37:36.05ID:8NCQzbFC
Castle DynamicProxyでも使えば
0663デフォルトの名無しさん2015/06/07(日) 17:43:25.91ID:LuDRIQ04
トン
ググってたらRealProxyってのが標準であるっぽいな、使い方調べてみるわ
0664デフォルトの名無しさん2015/06/07(日) 17:52:51.05ID:LuDRIQ04
調べたが、結論から言うとだめだった
後出しですまんが、ポータブルクラスライブラリの中で使いたかったんだ
0665デフォルトの名無しさん2015/06/07(日) 18:12:22.29ID:8NCQzbFC
>>664
ストアアプリ対応を視野に入れるなら動的コード生成は使えないと思う
T4かビルドステップで静的生成するしかないな
0666デフォルトの名無しさん2015/06/10(水) 09:42:27.56ID:ygS+rXar
C#で自身を自動アップデートしたいのですがClickOnce以外で簡単な方法はないでしょうか?
Visual Studio 2013 Communityを使用しています。
0667デフォルトの名無しさん2015/06/10(水) 20:09:37.98ID:mqs3U/0V
更新用のプロセスを起動して更新してもらったら 。
0668デフォルトの名無しさん2015/06/10(水) 22:09:57.35ID:kk1whmrM
自身をリネームしてダウンロード、それを立ち上げたらリネームした古exeを削除でいけるってさ
でもこの方法だと互換性タブの内容とか初期化されそうだけど
0669デフォルトの名無しさん2015/06/10(水) 23:42:51.42ID:PClQRuuG
前作った時は、更新チェック、更新するプログラムを先に起動させて
必要なら本体をダウンロード。なければ本体を実行
更新用のプログラムの更新が面倒だが、とりあえず放置したw
0670デフォルトの名無しさん2015/06/11(木) 00:16:00.76ID:APPInatq
更新用のプログラムの更新は本体がする
0671デフォルトの名無しさん2015/06/11(木) 00:32:40.92ID:Js1obKtO
マニフェスト適切に設定すればProgram Filesの中も書き換えられるんだっけ?

その辺クリアしても、適当にやるとインストーラーの自己修復機能が働いていろいろ
大惨事になりそうな気がw
0672デフォルトの名無しさん2015/06/11(木) 04:32:28.69ID:/dmUwZL+
Blendに期待してやってみたが
なんだこれは
カラムの色を変えるだけでものすごく面倒
カラムの色を変えられると困るの?
普通変えたいだろ?
変えさせたくない理由でもあるのか?
ボタンが星形にできます?
なめんなよカス
誰がそんなのほしいんだよ

何が開発効率あがるだ
色変えられないならWinFormsと一緒だろうが
ふざけんな!
0673デフォルトの名無しさん2015/06/11(木) 06:21:26.51ID:RSM2GHGx
>>671
アドバタイズショートカットを無効にしとけば問題なし。
マニフェスト設定うんぬんって何?
0674デフォルトの名無しさん2015/06/11(木) 06:26:04.61ID:/LMhdntT
>>672
ビルマの星形死体が恵まれた痛みなの
0675デフォルトの名無しさん2015/06/11(木) 12:57:44.67ID:8v336KOJ
>>672
まぁ単純なのだったらWinFormの方がはえーだろう
0676デフォルトの名無しさん2015/06/11(木) 14:00:29.61ID:7IeLpwzz
// 構成
public interface IHoge { event EventHandler Foo; }
internal static class IHogeEx
{
 public static void Dispatch(this IHoge hoge) { /*hoge.Foo発火*/ }
}
 :
// 使用例
var hoge = provider.GetService<IHoge>();
hoge.Dispatch();

上記のように、IHoge に拡張メソッドを生やして、そこからイベントを発火させたいんだけど、
何かスマートなやり方ないだろうか
0677デフォルトの名無しさん2015/06/11(木) 14:03:09.70ID:y/M+seZQ
MVVMフレームワークは何を使えば一番良いですか?
沢山あってどれを使っていいのかわからないので教えてください
0678デフォルトの名無しさん2015/06/11(木) 14:30:38.84ID:tam4srza
>>676
インターフェイスに発火用のメソッドを追加しないなら、
ダウンキャストかdynamicで直接実装クラスの発火メソッドを呼ぶしかない
0679デフォルトの名無しさん2015/06/11(木) 15:16:11.25ID:hKCw6BKi
スマートも糞もないよねえw
0680デフォルトの名無しさん2015/06/11(木) 20:53:35.21ID:kfIByvae
string src = "abc1";
string dst = "abc2";

この場合"abc"と返してくれる
こんな感じで2つの文字列からマッチしたとこだけ
返してくれる関数って存在しますか?
0681デフォルトの名無しさん2015/06/11(木) 21:02:35.81ID:Rh7nLCb0
「こんな感じ」なんて曖昧な要件に疑問を感じないならプログラマ辞めるべき
0682デフォルトの名無しさん2015/06/11(木) 21:14:06.58ID:0Pxomqre
「マッチしたとこだけ」の仕様から詰めていこうか

まあ標準メソッドにはないだろうな
0683デフォルトの名無しさん2015/06/11(木) 21:18:18.91ID:Ufbw3rnf
>>680
積集合でよければ、LINQのIntersect

string src = "abc1";
string dst = "abc2";

var results = src.Intersect(dst);
0684デフォルトの名無しさん2015/06/11(木) 21:19:54.57ID:tam4srza
先頭からだけでいいなら
new string(src.Zip(dst, (x, y) => new[] { x, y }).TakeWhile(xy => xy[0] == xy[1]).Select(xy => x[0]).ToArray())
0685デフォルトの名無しさん2015/06/11(木) 21:23:09.74ID:Ufbw3rnf
そうだよね
普通先頭からだよね

なにやってんだ、俺
0686デフォルトの名無しさん2015/06/11(木) 21:45:19.58ID:kfIByvae
集合演算とかいうのを知らなかったこれ便利ですね
ありがとうございます
0687デフォルトの名無しさん2015/06/12(金) 10:49:10.11ID:2WRpjnt2
684は順序依存だから集合演算というよりリスト演算やシーケンス演算と呼ぶべきだろ
0688デフォルトの名無しさん2015/06/12(金) 16:07:40.50ID:qBpXFxOz
HDD内のすべてのファイル情報を保存したい
どういう形式で保存すればいいの?
新しく作ったプロジェクトからも簡単に読めるような
汎用的なのがあったら教えて
0689デフォルトの名無しさん2015/06/12(金) 16:18:10.66ID:quZXc/6x
VHDにしてマウントすれば最強だろ
0690デフォルトの名無しさん2015/06/12(金) 16:20:08.31ID:tFsYlsAo
>>688
情報なわけだろ?
MongoDBとかSQLite、テキスト的なものならJSONとか色々あるべさ。
0691デフォルトの名無しさん2015/06/12(金) 16:29:40.61ID:quZXc/6x
渾身のギャグ空振り
0692デフォルトの名無しさん 転載ダメ©2ch.net2015/06/12(金) 22:44:32.47ID:lGbqaeoG
1つメソッドがあったとします。例 test(int A,int B)
このメソッドは割と多くの場所で呼んでいるのですが、引数を追加したくなりました。
test(int A,int B,string C)

参照を検索して1つ1つ手直しすると結構時間がかかってげんなりするのですが、
例えばCに一番多く使う単語"tarou"をメソッドの修正と一緒にすべての参照元にも追加できたら助かるのですが、
そういったまとめて修正するような方法ってないでしょうか?
0693デフォルトの名無しさん2015/06/12(金) 22:50:30.69ID:dm5ygxXA
正規表現置換で全く問題なく置換できる気がする
0694デフォルトの名無しさん 転載ダメ©2ch.net2015/06/12(金) 22:53:12.22ID:lGbqaeoG
なるほど
そういう機能みたいなのはないですよね
正規表現で置換が一般的なのかな
正規表現で置換してみます
ありがとう
0695デフォルトの名無しさん2015/06/12(金) 23:00:46.72ID:PfZlC01y
オーバーロードしたら?
アセンブリ内限定のメンバならオプション引数もアリ
0696デフォルトの名無しさん2015/06/12(金) 23:01:53.04ID:Kc7Sj0Rn
正規表現がカンペキとな。
どれだけ693は頭が悪いんだ。
ところで692は釣り質問でいいんだよな?
0697デフォルトの名無しさん 転載ダメ©2ch.net2015/06/12(金) 23:03:55.51ID:lGbqaeoG
釣りじゃなくて割と真面目に困ってますよー
ぱっと調べてもまとめて修正するような方法見当たらなかったので、皆参照一覧にして手打ちしてるのかなと・・・
正規表現だと真ん中に追加するのが大変そうでした
0698デフォルトの名無しさん 転載ダメ©2ch.net2015/06/12(金) 23:10:45.98ID:lGbqaeoG
>>695
違う内容のメソッドを書きたいわけではなく、(引数が異なるほぼ空のメソッドでもう片方を呼べということだとは思うのですが)
追加修正のたびにオーバーロードを増やすのもちょっと抵抗あるので、オーバーロードは避けたいかもしれません
オプション引数というのはよく知らんかったので調べてみたら希望に合いそうなものでしたが、途中だけ省略するのは出来ないっぽいんですね
もう少し調べてみます
ありがとう
0699デフォルトの名無しさん2015/06/12(金) 23:14:10.93ID:5TqWIrUh
オプション引数なんかよりよっぽどいいのに何が抵抗なんだろうな
0700デフォルトの名無しさん 転載ダメ©2ch.net2015/06/12(金) 23:19:45.78ID:lGbqaeoG
>>699
引数の修正の度に同じメソッドが大量にできたら分かり辛くありませんか?
修正の度に5個も6個もオーバーロード作って重ねていくのが一般的なのです?
0701デフォルトの名無しさん2015/06/12(金) 23:20:59.14ID:n696dST6
メソッド増やしたくないならオプション引数でOK

いざとなったら名前付き引数もできるし
面倒だからあんまり使わないけど
0702デフォルトの名無しさん2015/06/12(金) 23:29:40.51ID:GYWzfYC0
素直に引数を直した方がいいと思うがな。
0703デフォルトの名無しさん2015/06/12(金) 23:32:47.43ID:5TqWIrUh
>>700
オプション引数出来たの4.0だからそれまでのものはそうだよ
あとはコンパイル時に補完される為外部に公開する場合後で変更できなくなって困る事、定数しか指定できない事から、基本的にオーバーロード使ってる
引数の組み合わせが膨大になるならオプション引数使うかな
0704デフォルトの名無しさん2015/06/13(土) 04:19:23.11ID:ds8D2Sdy
引数が5回も6回も変更されて、そのたびに呼び出し元も全部修正するとか
そんな奴が設計するようなプロジェクトには関わりあいたくないなぁ
0705デフォルトの名無しさん2015/06/13(土) 06:06:42.74ID:KSn5zbP7
>>704
ここふらっとスレですし
皆が皆、プロジェクトwとかに関わってるドカタじゃないわけで
0706デフォルトの名無しさん2015/06/13(土) 08:00:57.79ID:KmHyJDy9
ドカタを馬鹿にしたな
埋めたろか
0707デフォルトの名無しさん2015/06/13(土) 08:16:10.09ID:CvpFt6eB
ドカタが馬鹿にされるんじゃない
馬鹿だからドカタと呼ばれるんだ
0708デフォルトの名無しさん2015/06/13(土) 10:25:20.60ID:54ObALVU
引数がお互いに関連の強いものだったら
クラスにまとめてそのオブジェクトで渡すようにしておけばいいし
0709デフォルトの名無しさん2015/06/13(土) 11:47:39.05ID:xsEqCEFL
総務部長からドカタになったサラリーマンもいますけどなにか
0710デフォルトの名無しさん2015/06/13(土) 12:02:19.55ID:LG1+98Ox
オブジェクトで渡します!

その結果↓
Show(new ShowArg("タイトル","内容",3,5,Beep.Short,Color.Red,640,480,5,5,5,5));
0711デフォルトの名無しさん2015/06/13(土) 12:06:21.98ID:Rkh+1gQ3
>>709
総務って一番無能やん
0712デフォルトの名無しさん2015/06/13(土) 12:18:07.18ID:KSn5zbP7
>>710
コンストラクタにもクラスでまとめてオブジェクトで渡すんだよ
0713デフォルトの名無しさん2015/06/13(土) 14:58:17.94ID:ds8D2Sdy
>>712
そのコンストラクタに渡すオブジェクトのコンストラクタにもクラスでまとめて渡すわけですね
0714デフォルトの名無しさん2015/06/13(土) 15:06:40.87ID:AmgidL1k
誰かゾフィー呼んでこい
0715デフォルトの名無しさん2015/06/16(火) 01:47:38.73ID:jDZvQ/PE
.NET4.5で追加されたHttpClientを使って、何を通信しようとしても通信せずに
HelloWorldだけ返すダミークライアントを作りたい

HttpClientのコンストラクタに空っぽのHttpResponseMessageを返す
ダミーのHttpMessageHandlerを食わせてリクエスト投げると
全く応答が帰ってこなくなるんだが、どう修正すればいいんだろう
0716デフォルトの名無しさん2015/06/16(火) 03:46:48.21ID:IOmyN/sL
>>714
私は命を2つ持ってきた
0717デフォルトの名無しさん2015/06/16(火) 13:03:42.49ID:tzCZhzEY
>>715
自己レス。
なんか原因はっきりしないけど、TaskCompletionSource<HttpResponseMessage>使わずに
Task<HttpResponseMessage>使ってて、何らかの要因でデッドロック起こしてたのが原因ぽい。
TaskCompletionSource<HttpResponseMessage>使ったらうまいことHttpClientをジャックすることができたぽい
0718デフォルトの名無しさん2015/06/16(火) 22:05:41.35ID:P66hsbhM
MVCで、コントローラ側での処理の正否を
ビュー側でメッセージ出力するため、
苦し紛れにViewBagをフラグ代わりに使ったのですが、
アンチパターンをしている気がしてなりません。

もっと王道的なやり方はあるでしょうか?

@if(ViewBag.Flag){
<script type="text/javascript">
$(function () {
 メッセージ出力処理
};
});
</script>
}

よろしくお願いします。
0719デフォルトの名無しさん2015/06/16(火) 22:22:55.39ID:y+ZRno0+
>>718
flash messageってやつだな
リダイレクトを挟む場合が多いからそのままビューに返すんじゃなくてCookieに突っ込め
0720デフォルトの名無しさん2015/06/17(水) 07:12:44.06ID:/9CY7bHI
>Cookieに突っ込め

HTTPの仕組みぐらい理解しろ
0721デフォルトの名無しさん2015/06/17(水) 07:19:59.36ID:F0xlXNRF
>>720
一時的なメッセージにcookieを使うのは普通にあるぞ
もしくはセッション使う
0722デフォルトの名無しさん2015/06/17(水) 07:29:54.96ID:83TxfKRo
そもそもHTTPの仕組みと何の関係が
0723デフォルトの名無しさん2015/06/17(水) 16:14:47.37ID:yetVKz/D
こんな簡単なのでうまいこと非同期で動くのか?
http://qa.atmarkit.co.jp/q/9443
0724デフォルトの名無しさん2015/06/18(木) 01:52:24.13ID:8P85rytq
プログラミング始めようと練習問題やってて
これは難解な問題だぞ・・・と複雑に作っちゃって悩みまくってやっとできたと思って答えみたらクソ単純だったこの怒りをどうすればいいですか
0725デフォルトの名無しさん2015/06/18(木) 06:01:23.61ID:Zk4Vy/pu
ネンネしな
0726デフォルトの名無しさん2015/06/18(木) 06:31:34.35ID:luyYzeTf
>>724
そこでこんなに簡素化できるんだと喜べないなら向いてない
0727デフォルトの名無しさん2015/06/18(木) 06:44:55.44ID:/ecUlEFr
tooltipの最大横幅設定ってないの?
わからなかったから、TTM_GETMAXTIPWIDTH送ろうと思ってHWND取得しようとしたら公開されてないみたいだし
0728デフォルトの名無しさん2015/06/18(木) 07:52:23.63ID:MLPf1LVb
Handleプロパティがinternalなんでリフレクションで取得だな
0729デフォルトの名無しさん2015/06/18(木) 08:06:44.22ID:SQas+mXZ
>>727
試す気ないけど行けそうな気がする
https://msdn.microsoft.com/ja-jp/library/system.windows.forms.popupeventargs(v=vs.110).aspx

ToolTipSizeプロパティ
0730デフォルトの名無しさん2015/06/18(木) 08:29:08.45ID:/ecUlEFr
>729
Popupでリサイズすると表示位置も変更しなきゃならないみたい
コントロールのMouseEnterで、tooltipのShowメゾットを実行して、位置指定で表示できたんだけど、
ShowAlwaysをtrueにしてても、アクティブウインドウにしてないとtooltipを表示してくれない・・・
MouseEnterはアクティブでなくても動くんだけど、Showメゾットは動いてくれない?
ShowAlwaysはSetToolTipで関連付けた時だけ有効なのかな?
>728
MFCの6.0しか触ったことない超初心者なので、まったく意味不明な単語なんだけど、
ググッて調べてみます
0731デフォルトの名無しさん2015/06/18(木) 08:48:48.18ID:SQas+mXZ
なかなか難儀なものだ
0732デフォルトの名無しさん2015/06/18(木) 09:00:12.23ID:MLPf1LVb
ここらのコードみれば何やってるか分かるから
http://referencesource.microsoft.com/#System.Windows.Forms/winforms/Managed/System/WinForms/ToolTip.cs,f38ab504e7bae391

リフレクションで取得なら
var hwnd = (IntPtr)typeof( ToolTip ).GetProperty( "Handle", BindingFlags.NonPublic | BindingFlags.Instance ).GetValue( toolTip, null );
0733デフォルトの名無しさん2015/06/19(金) 02:26:32.06ID:e7ddVa/R
C#では、このような事は出来ないのでしょうか?

if (mode == 1)
{
System.Windows.Forms.Button[] objs;
objs = new System.Windows.Forms.Button[len];
}
else
{
System.Windows.Forms.TextBox[] objs;
objs = new System.Windows.Forms.TextBox[len];
}
0734デフォルトの名無しさん2015/06/19(金) 03:15:04.92ID:TkbfpMuS
できますよ。
0735デフォルトの名無しさん2015/06/19(金) 07:50:23.16ID:e7ddVa/R
>>734
objsを使おうとすると、エラーになります。
やはり、c#ではこういった動的な割り当ては無理のようですね・・・
0736デフォルトの名無しさん2015/06/19(金) 08:05:01.44ID:CxQBllDu
プログラミング向いてなさすぎて草
0737デフォルトの名無しさん2015/06/19(金) 08:21:34.61ID:YVDfker6
順序立てで物事を進められない人間は何にも向いてない
0738デフォルトの名無しさん2015/06/19(金) 09:01:27.03ID:yHcBqTMw
出来ない事を出来ると言い張るよりはマシでしょうけどね。
その程度ならc#知らない偽物でも出来ますから。
0739デフォルトの名無しさん2015/06/19(金) 09:05:32.96ID:PbyfPj3O
>>738
煽って回答を引き出そうとする古典的手法ですね
0740デフォルトの名無しさん2015/06/19(金) 09:06:00.47ID:w3qLtTPG
おいおい真性か?

…外に出さないからこうなるんですよ
避妊の話ですよ、もちろん
教育にコストが掛けられない家庭が子供を産むから
馬鹿の再生産が止まらないんですね
0741デフォルトの名無しさん2015/06/19(金) 09:16:06.74ID:Rpgf6TLH
そうだな外に出すべきだったな。
スコープってプログラミング入門だとどの辺に来るかな。
変数ステートメント制御構造ブロックの次くらいか。
0742デフォルトの名無しさん2015/06/19(金) 13:30:34.71ID:OM/mL1R2
Console.WriteLine("{0}unko{1}oshikko", oshiri, tinko);
こうだったり
Console.WriteLine(oshiri + "unko" + tinko + "oshikko");
こんなだったり解説サイトにとって違いますけどどっちが一般的とかあるんですか?
好みの問題?
0743デフォルトの名無しさん2015/06/19(金) 13:55:39.70ID:pkAyx7dR
どっちでもいい
現実には書式指定が必要で前者しか使えないケースが多いから、統一するために常に前者を使う人もいるし
後者で十分なのに重い処理が走るのが気持ち悪いからとか分かりやすいからとかで後者が好きな人もいる
0744デフォルトの名無しさん2015/06/19(金) 13:56:50.97ID:iLnBptiu
文字列の中に {0} とか入ってない前提?
0745デフォルトの名無しさん2015/06/19(金) 15:17:35.89ID:0hBKkSHT
�@ if(flag == 1)
�A if(1 == flag) 

どっちがいいとかありますか?
0746デフォルトの名無しさん2015/06/19(金) 15:26:10.71ID:CxQBllDu
�@がいい
0747デフォルトの名無しさん2015/06/19(金) 15:46:44.67ID:a3/nS/y/
俺は1だが、=が足りなくてバグることあるからとかで2にしろってとこもあんな
0748デフォルトの名無しさん2015/06/19(金) 15:48:59.15ID:iLnBptiu
=が足りなくてって、、C#だぞ、、、
読んで自然な方で
0749デフォルトの名無しさん2015/06/19(金) 15:57:58.99ID:Kz33B61u
>>745
�@一択ですね。
0750デフォルトの名無しさん2015/06/19(金) 16:08:36.21ID:UZ90C/fG
flagならbool型にしろ
bool型にできないならflagなんて名前つけるな
って言うところじゃないの?
0751デフォルトの名無しさん2015/06/19(金) 17:55:12.81ID:aR5XXTpt
�AはCやる人が良くやるけどC#では用無しだよ、警告ですらない
この文は型不一致エラーだから
0752デフォルトの名無しさん2015/06/19(金) 17:59:21.88ID:e+GzY/Uc
『1==flag』
この書き方をする低能は自分が今までやってきたこと以外は受け入れ不能だなら
用無しなどと言っても無駄。
「ボクは今までこうしてきた」
これが低能の全て
0753デフォルトの名無しさん2015/06/19(金) 18:01:04.33ID:7lvdbQLv
俺のflagは108式まであるで
0754デフォルトの名無しさん2015/06/19(金) 18:03:16.40ID:bQ8ksHOB
>>745
俺だっら
bool isEqual_Ichi(int Flag)
っていう関数作るわ。
0755デフォルトの名無しさん2015/06/19(金) 18:19:49.79ID:r/i/iowz
>>752
自分で自分のことを書いてることに気付きもしないあんたもどうかと思うけどねw
0756デフォルトの名無しさん2015/06/19(金) 18:40:00.84ID:iLnBptiu
>>753
国コード入れて国旗の種類で使うとかねw
0757デフォルトの名無しさん2015/06/19(金) 19:08:38.00ID:0hBKkSHT
Cやってきた人が�Aの書き方をしています
�Aでも動くじゃないですか、何でダメなんですか
と言う相手を説得して�@にさせるには、どういう論法で言えばいいですか?
0758デフォルトの名無しさん2015/06/19(金) 19:27:58.72ID:AG39fnfm
わずかでも合理性がある限り説得は無意味
ルールで強制させるのみ
0759デフォルトの名無しさん2015/06/19(金) 19:28:02.10ID:pnFSsBPf
別に2でもよくね。理由があれば。
まあ、2の場面思い浮かばんけど。
0760デフォルトの名無しさん2015/06/19(金) 19:28:28.86ID:r/i/iowz
>>757
別に説得する必要なんかない。
どっちでも同じだから。

確かにC#で(2)に固執するのもアホだが、それを言うなら(1)に固執するのも同じアホ。
0761デフォルトの名無しさん2015/06/19(金) 19:32:49.13ID:yksfiqHC
同じアホでもC#でも2にするべきだってひとと1にするべきだってひとはアホの向く方向が違うから
0762デフォルトの名無しさん2015/06/19(金) 19:34:40.95ID:pnFSsBPf
どっちでも同じなら、1でも2でもいいし、ルールを強制しようがしまいがどうでもいい。
つまり、どうでもいい。
0763デフォルトの名無しさん2015/06/19(金) 19:58:20.07ID:aR5XXTpt
用がない場合はルールを強制するのは愚行
ルールは必要最低限が鉄則
0764デフォルトの名無しさん2015/06/19(金) 22:00:29.58ID:PbyfPj3O
でもそういうアホが集まってるところではルールで縛ったほうが安全かも
0765デフォルトの名無しさん2015/06/19(金) 22:03:17.96ID:7aVYy04Z
そういうところでは�AはNGなのに丸コピぺはレビューでスルーされるという現象がよく見られる
形式的なルールで縛ろうとするのは上が無能で本質を理解していないことによる場合が多い
0766デフォルトの名無しさん2015/06/19(金) 22:20:43.34ID:pnFSsBPf
ルールを最低限にするのなら、ルールを最低限にするなどというルールを設けるんじゃない。早速矛盾してんだよ。
0767デフォルトの名無しさん2015/06/19(金) 22:35:53.66ID:8vlDffY6
>>766
駄レス
0768デフォルトの名無しさん2015/06/20(土) 00:30:15.86ID:yM1kMDKK
もしflgが1ならって思考に合わせた書き方をしたほうがいいに決まってる

もし1とflgが同じならなんて思考するやつはどこかおかしい
0769デフォルトの名無しさん2015/06/20(土) 00:31:30.88ID:P+7QrmPi
2はコーディング規約としてはありがちだな
間違って=にした時に代入が出来なくてコンパイルエラーで検出出来るから。
0770デフォルトの名無しさん2015/06/20(土) 00:32:56.84ID:qQ/qlsDi
>>768
低能は意味を考えないから
おかしいと感じないらしい
0771デフォルトの名無しさん2015/06/20(土) 00:33:02.36ID:P+7QrmPi
おっとC#スレだったw
>>769はC言語の話しなww
0772デフォルトの名無しさん2015/06/20(土) 00:37:17.22ID:SQF/c2YL
>>768
>>770
言っちゃ悪いけど、それは「ボキュは演算子の交換法則なんて知りません」って語るに落ちてるだけ。
ばっかじゃねえの本当。

恥ずかしげもなくむしろドヤ顔で勝ち誇ったように間抜けなことを言ってるんだから笑える
0773デフォルトの名無しさん2015/06/20(土) 00:41:07.20ID:qQ/qlsDi
↑文脈とか意味を考えない低能の典型例
読みにくいだろ低能め
0774デフォルトの名無しさん2015/06/20(土) 00:52:25.05ID:yM1kMDKK
とりあえず?で書くやつはバグが多すぎる
0775デフォルトの名無しさん2015/06/20(土) 02:34:42.39ID:6sbS7y/z
func1(){
…
return {1,2,3};
}

var a=func1();
var b=a[0];
var c=a[1];
var d=a[2];

とかかな?
0776デフォルトの名無しさん2015/06/20(土) 15:00:31.13ID:XTWPFSca
CとC#が同じ高級言語で括られるのは違和感があるのですが、
第○世代言語とか呼び方はあるのでしょうか?
0777デフォルトの名無しさん2015/06/20(土) 15:36:18.37ID:s+YE9WtJ
ありません
0778デフォルトの名無しさん2015/06/20(土) 16:24:23.17ID:P+7QrmPi
Cが構造化言語、C#がオブジェクト指向言語ぐらいかな
0779デフォルトの名無しさん2015/06/20(土) 18:58:22.36ID:hdd6Iv+Z
>>776
c言語は高級言語じゃないだろ。アセンブリ言語と高級言語の間くらいの言語だと思う。
0780デフォルトの名無しさん2015/06/20(土) 19:02:41.29ID:tDc6RR32
一般的には高級言語だよ。この単語自体もう時代遅れでどうでもいい分類だがw
ttp://www.weblio.jp/content/%E9%AB%98%E7%B4%9A%E8%A8%80%E8%AA%9E
ttp://wiki.ju.edu.jo/ja/articles/%E9%AB%98/%E7%B4%9A/%E8%A8%80/%E9%AB%98%E7%B4%9A%E8%A8%80%E8%AA%9E.html
0781デフォルトの名無しさん2015/06/20(土) 19:36:29.11ID:YQlfkZgo
C言語が生まれた当時なら最先端の高級言語だなw
時代と共に古くなって、今や高級とは言いづらいけど
0782デフォルトの名無しさん2015/06/20(土) 20:14:40.77ID:74rB06rU
>>781
言語の古さと、高級言語かどうかは全然別の話でしょ
Cより古いものにも、FORTRANとかCOBOLとかPascalといった
高級言語があったわけだから
0783デフォルトの名無しさん2015/06/20(土) 20:46:40.54ID:KZdkN3xz
最近は高級言語なんて死後に近いから、高級言語の本来の意味を知ってるのは
俺みたいなオジサンだけかもしれないね。

高級言語の「高級」はA級戦犯とかと同じで別にグレードが高いって意味じゃないのよw
0784デフォルトの名無しさん2015/06/20(土) 20:47:56.56ID:K7xzi7Ex
性癖
悩ましい
敷居が高い
高級言語 ←new
0785デフォルトの名無しさん2015/06/20(土) 22:20:48.72ID:xyJjBRvk
英wikipedia見てたら超高水準言語という区分があった
0786デフォルトの名無しさん2015/06/20(土) 23:29:40.23ID:XTWPFSca
>>780
>代表的な高級言語の種類としては、BASIC、FORTRAN、COBOL、C言語、C++、Java、Pascal、Lisp、Prolog、Smalltalkなどがある。

やはり、CとJAVAが同じ括りというのは、少し乱暴な気がします。

IT関係では、誰も気にしないんでしょうかねぇ。。。
0787デフォルトの名無しさん2015/06/20(土) 23:44:44.79ID:9Ukvdsb1
そんな括りなんてどうでもいいと思うんだが
使わなきゃならない時にはそんな括りなんて何の意味も持ってないんだから
0788デフォルトの名無しさん2015/06/20(土) 23:55:28.97ID:fYXXUti6
>>786は、そこで上げた言語だと、どの言語が同じ括りになると思うの?
0789デフォルトの名無しさん2015/06/21(日) 00:44:13.38ID:LtTYOS1I
>>786
気にするのは大学生だけだよ
職場じゃそれ使って何ができるかの方が重要
0790デフォルトの名無しさん2015/06/21(日) 00:56:02.48ID:oygMyh8G
C#やJAVAのようなモダンな言語は、オブジェクト指向を採用していて
ジェネリックやラムダみたいなモダンな仕組があるのに対し、
制御で使われるような無印Cが、同じ高級言語扱いというのが
気になりまして。

世代がかなり違うんじゃないかなと思うんですよ。

まあ、実害なんて何も無いんでしょうけど。。。
0791デフォルトの名無しさん2015/06/21(日) 01:00:01.67ID:8J8Zrkqm
>>786
だから高級って言葉の語感に引きずられるからそうなる。
だから死後だって言ってるじゃん。
0792デフォルトの名無しさん2015/06/21(日) 01:16:47.05ID:oygMyh8G
もう、高級言語なんて言葉は使わないんですね。

情報処理技術者試験の勉強で覚えたのですが、
情報古いよって感じですね。

5000円払って、古い話題を必死に覚えるとか、
勉強のモチベーションが下がりますね。
0793デフォルトの名無しさん2015/06/21(日) 01:22:39.36ID:8J8Zrkqm
勉強とか言ってる割に高級言語って言葉の本来の意味を確認はしないのねw
0794デフォルトの名無しさん2015/06/21(日) 01:26:19.30ID:xl4g4Hja
アセンブリ言語は高級言語?
マシン語だけが低級言語だよね?
0795デフォルトの名無しさん2015/06/21(日) 03:59:16.75ID:0g6EdVmv
低脳には関係ないから安心して寝なさい
0796デフォルトの名無しさん2015/06/21(日) 04:25:32.56ID:Y9sFMHSn
BitConverter.ToInt32(bytes, 0);
とすればバイト配列は整数に変換できますけど
配列ではなくバイト1つを整数に変換するにはどうするんですか?
0797デフォルトの名無しさん2015/06/21(日) 06:43:11.87ID:mTVvjbYS
Oh...

int i = (int)b;
0798デフォルトの名無しさん2015/06/21(日) 06:46:12.05ID:0VYCqu5Y
>>796
キャスト
0799デフォルトの名無しさん2015/06/21(日) 07:20:02.94ID:EnXta+1+
>>790
高級言語と低級言語の2択で分けるとアセンブリ言語ととマシン語以外は高級言語の範疇だから
無印c言語は高級言語だね。
0800デフォルトの名無しさん2015/06/21(日) 09:53:22.86ID:xl4g4Hja
論理回路とアセンブリ言語とC言語はやっておかないと
プログラミングできるとは言えないと思う
0801デフォルトの名無しさん2015/06/21(日) 11:05:19.79ID:faNvk/Nn
include <stdio.h>

int main (void){

int a=0,b=0;

scanf ("%d",&a);
scanf ("%d",&b);

If ( a==b ) printf ("2つの数値はおなじです\n");
else if ( a>b) printf("一つ目のほうが大きいね\n");
else printf("2つ目のほうが大きいね\n");

return 0;
}




というプログラムなんですが2つめのscanfが入力待ちになりません
0802デフォルトの名無しさん2015/06/21(日) 11:07:57.76ID:LtTYOS1I
ID:xl4g4Hja 低級かまってちゃん
0803デフォルトの名無しさん2015/06/21(日) 11:35:35.74ID:EnXta+1+
>>801
scanf ("%d%d", &a, &b);
0804デフォルトの名無しさん2015/06/21(日) 11:37:15.21ID:0VYCqu5Y
>>801
スレ違い
ここはC#言語のスレ、それはC言語
0805デフォルトの名無しさん2015/06/22(月) 11:29:32.98ID:UwfP1xrU
ま、改行が入ってそれ捨てない限り無限待ちだな
0806デフォルトの名無しさん2015/06/22(月) 12:05:53.87ID:y0tN2zKc
論理回路とアセンブリ言語とC言語やってないプログラマがクソほどいる件
0807デフォルトの名無しさん2015/06/22(月) 12:19:07.33ID:+krrUuSd
>>806
論理回路?
ブール代数だろ
0808デフォルトの名無しさん2015/06/22(月) 12:22:30.22ID:PGSQ0zuB
何だよブール代数ってw
論理回路は論理回路だろw

Cはともかくアセンブリとかカルノー図書いて論理圧縮とか
今時普通のプログラマにはまず要らん無駄知識だとは思うが、
さすがに言われてそれが何か知らないのはかなり恥ずかしいレベルだなw
0809デフォルトの名無しさん2015/06/22(月) 12:23:42.09ID:NbAxzy03
どうしたオッサン。
午前中のミーティングで若手に虐められてこんなとこで愚痴ってんの?
死ねよ、今すぐ
0810デフォルトの名無しさん2015/06/22(月) 12:30:05.89ID:PGSQ0zuB
>>809
精神分析学で言う」「投影」のいいサンプルだねおたくw
0811デフォルトの名無しさん2015/06/22(月) 12:53:12.43ID:+krrUuSd
>>808
プログラミングに必要なのは納戸じゃなくてブール代数だろ
0812デフォルトの名無しさん2015/06/22(月) 13:05:30.79ID:i7SsAXTs
あー、昔はブール代数って言わなかったのよ
0813デフォルトの名無しさん2015/06/22(月) 14:29:24.68ID:etNNMvNi
>>811
そもそもブール代数って高校の数Iだろw
必用とか必用でないとかそういうレベルかよw
0814デフォルトの名無しさん2015/06/22(月) 14:53:48.18ID:ytIOVG8W
アセンブリ言語アレルギー多すぎw
やってみればC#より簡単なことがわかるのに
0815デフォルトの名無しさん2015/06/22(月) 15:00:27.86ID:zYgzAJ7h
アセンブラはデバッグでハマった時にC#など目じゃない悲惨さが待っています
0816デフォルトの名無しさん2015/06/22(月) 15:11:27.95ID:+krrUuSd
>>814
c#のジェネリックリストをアセンブラで実装してくれ
0817デフォルトの名無しさん2015/06/22(月) 15:30:57.40ID:0p5/VSpX
それは、既に実装されているのでわ?でないと、そもそも動いてないと思う>ジェネリックリスト
0818デフォルトの名無しさん2015/06/22(月) 16:50:46.39ID:+krrUuSd
>>817
低水準言語にそんなものを期待されても
0819デフォルトの名無しさん2015/06/22(月) 19:27:41.51ID:E8VLkWhf
質問です
以下のようにnamespaceに$rootnamespace$と指定してあるソースを見たのですが、
自分のプロジェクトで同じように指定してもエラーになります
これはどうやって設定すればいいのですか?
↓
namespace $rootnamespace$
{
  ....
}
0820デフォルトの名無しさん2015/06/22(月) 19:45:14.31ID:tbUBo/lz
置換用のプレースホルダだろう
ビルドの時にスクリプトで置換したりするんじゃね
C#はドルマーク使わないからね
0821デフォルトの名無しさん2015/06/22(月) 19:45:33.78ID:74RPk8kg
>>819
それ、コードスニペット(のソース)じゃないの?w
0822デフォルトの名無しさん2015/06/22(月) 20:32:05.98ID:E8VLkWhf
>>820-821
普通に使用できるものではないんですね
ありがとうございました
0823デフォルトの名無しさん2015/06/22(月) 22:33:37.30ID:kX4NZqJx
.NETはC#一本で良いんじゃないかと思うのですが、
VB.NETを切らない理由は何なのでしょうか?
0824デフォルトの名無しさん2015/06/22(月) 22:37:12.91ID:LnmegFLf
>>823
vb.netの方がシェアが多いから
0825デフォルトの名無しさん2015/06/22(月) 22:39:33.29ID:tbUBo/lz
VB.NETを切ったりしたら大量の自殺者が出るだろ
社会正義のためだよ
0826デフォルトの名無しさん2015/06/22(月) 22:43:14.43ID:kX4NZqJx
VB.NETをやっている人間が、
VB無くなったらJAVAやると言っていたのですが、
VB使いの時点で、C#やるしか無いだろうなと思いました。
0827デフォルトの名無しさん2015/06/22(月) 22:46:32.05ID:tbUBo/lz
ドカタワールドなら技術的な部分はノウハウ(笑)をコピペするだけだから
.NETとJavaの違いなんて大して問題にならんのよ
0828デフォルトの名無しさん2015/06/22(月) 22:49:24.32ID:kDeJuTTl
うちの会社、俺がVB.NETからC#への移行を提案したけど
コードの移植が面倒だとか読めないだとか色々言われて結局VB.NETのままだよ
まぢ死んで欲しい
0829デフォルトの名無しさん2015/06/22(月) 23:36:15.28ID:uXQtn42r
javaは甘くねえよなあ
OracleはMSみたいにおシモの世話なんかしない
0830デフォルトの名無しさん2015/06/22(月) 23:38:32.00ID:uXQtn42r
たぶんMavenとかGradleのエラーが解決できなくて途方に暮れると思うんですけど(名推理)
0831デフォルトの名無しさん2015/06/23(火) 07:46:08.06ID:LhhNEn7L
>>829
JavaFXの現状見ればそれがよくわかる。
しょせんDB屋。アプリケーション類はゴミ。
0832デフォルトの名無しさん2015/06/23(火) 07:49:00.71ID:U2+OnFmB
>>828
おめーが死ねってw
実際、c#移行したって使えねーんじゃ論外だろ。まず、現実見ろよ。
0833デフォルトの名無しさん2015/06/23(火) 07:56:53.71ID:LhhNEn7L
>>828
会社としてはおまえが氏ねって思ってるよ。
それと、お前のその行為、間違いなく査定に引っかかってるから覚悟して
おけよ。

非常に身勝手な提案として認識されてるから。言語を変えるなんておまえ
のような三下が提起することじゃねぇんだよ。三流プログラマー君。
0834デフォルトの名無しさん2015/06/23(火) 07:58:12.61ID:7ayUCnwb
マ板でやれ
0835デフォルトの名無しさん2015/06/23(火) 08:06:23.29ID:rzZlb/rV
朝から元気だな
0836デフォルトの名無しさん2015/06/23(火) 11:48:09.08ID:9zw4MnHg
会社選ぶときに主要言語を調べて入らないとこうなるんだな笑
0837デフォルトの名無しさん2015/06/23(火) 13:23:49.18ID:5RwnSh85
社畜自慢はマ板でやれよ
0838デフォルトの名無しさん2015/06/23(火) 15:31:00.12ID:8ljnnXhY
無職がマ板に行けるとでも?
0839デフォルトの名無しさん2015/06/23(火) 22:14:19.04ID:NJre/ebQ
C#が仕事でかける職場は少ないけどな。自社製品主力かつスクラップ&ビルドが主流で、社内ツール作るかwindowアプリケーション作らないとC#は選択肢にならない
0840デフォルトの名無しさん2015/06/23(火) 22:20:07.95ID:iTFSMqDv
ごめんね、それ以外でC# 仕事で使ってて
0841デフォルトの名無しさん2015/06/23(火) 22:28:15.90ID:26y4Wu4y
>>839
今時社内でもウェブアプリが主流ですよ。
C#なんて要らんわ
0842デフォルトの名無しさん2015/06/23(火) 22:34:56.55ID:tJjJE4PL
OS別 アプリ開発言語

iOS = objective-c おおー
Android = JAVA いいねー
Windows = VB.NET へこーーーーーーーー

斜陽のMSらしいヘボ言語だよね。

C#なら、こんな負い目感じなかっただろうに。。。
0843デフォルトの名無しさん2015/06/23(火) 22:39:28.60ID:0NuC1wwg
>>842
少なくともjavaよりvbの方がだいぶましw
vbはコ冗長になるけど(特にラムダとか酷い)出来ることはC#とそう違わないし

っていうか、10年前ならともかく今あえてC#じゃなくてVBを選択してる企業は
なかなかないと思うが
0844デフォルトの名無しさん2015/06/24(水) 01:42:38.39ID:q52g9Sr7
ストラテジーパターンのメリットが分かりません
0845デフォルトの名無しさん2015/06/24(水) 02:03:16.33ID:x8P9P79s
https://github.com/TakahashiShuuhei/DesignPatternPractice/blob/master/Strategy.cpp#L42

こういうのどうよ
これはC++だけど関数ポインタをdelegateで書いたりActionで書いたりする
0846デフォルトの名無しさん2015/06/24(水) 15:02:35.40ID:zRV+32S/
>>828
教育と移行にかかる工数とスケジュール表を稟議書にまとめて提出しろ
ダメでも評価は上がるべ
0847デフォルトの名無しさん2015/06/24(水) 15:59:30.08ID:RTg8LFF8
混ぜちゃえ
0848デフォルトの名無しさん2015/06/24(水) 16:11:52.31ID:NHniIMjV
俺も混在でいいと思うけど
そのうちVBしかダメなやつ以外はC#に移行するだろ
0849デフォルトの名無しさん2015/06/24(水) 17:06:57.61ID:vFKyrOSk
VB独自の機能使われるとC#のプロジェクトから参照した時に
いろいろ困ったことが起こるんだったような
0850デフォルトの名無しさん2015/06/24(水) 17:30:33.90ID:NVaEfsnd
VB独自の機能…?あったっけ?.netになってから?
0851デフォルトの名無しさん2015/06/24(水) 18:06:37.53ID:no9AmW7J
それに関しては多分CLSCompliantAttribute付けとけば警告してくれるんだよね?
0852デフォルトの名無しさん2015/06/24(水) 18:28:20.96ID:sRqUdszq
>>850
引数付きプロパティとか。
名前付き引数もたぶんC#と微妙に違う。
場合によってはオーバーロードの解決法の違いも問題になるかも。
あとインターフェイス関係が結構違う。
0853デフォルトの名無しさん2015/06/24(水) 19:44:50.16ID:RTg8LFF8
VB.NETでインターフェースを使ってるの見たことがない
0854デフォルトの名無しさん2015/06/25(木) 03:30:46.63ID:pZAotZeg
今はオプション引数も対応してるし
困る事といえばVB.NET側の修正やらされる時くらいかな
C#に戻った時に、ついDimと書いてしまう
0855デフォルトの名無しさん2015/06/25(木) 08:24:31.88ID:XFqbgY05
VBからC#を参照すると、refまたはoutでオーバーロードしてるメソッドが困ったことになるのは知ってる
0856デフォルトの名無しさん2015/06/25(木) 21:11:36.76ID:TDcnlZ9r
そんなVB以下の糞を垂れ流す奴が悪い
0857デフォルトの名無しさん2015/06/25(木) 22:12:13.25ID:RTWId8Mi
>そんなVB以下の糞を垂れ流す奴が悪い

どういう理由でアンチパターンなのでしょうか?
後学のために教えてください。
0858デフォルトの名無しさん2015/06/25(木) 22:37:06.83ID:U7g+0mTH
>>854
俺もつい
varって書いちまうわ
0859デフォルトの名無しさん2015/06/26(金) 16:13:21.68ID:U7E4+CJP
>>735
理由は分からんが、実際エラーになるね。
0860デフォルトの名無しさん2015/06/26(金) 16:50:56.90ID:Z3cTZ1J0
>>859
そんな演技してまで答えて欲しいのか?ゴミw
0861デフォルトの名無しさん2015/06/26(金) 18:05:59.07ID:l3ThfphX
これは酷いwww
0862デフォルトの名無しさん2015/06/26(金) 22:21:39.88ID:oMjJITJg
最初は煽ってたけど、居付かれて地縛霊になったら困るだろ……

Control[] objs;  // ←Controlの配列にしておく。ButtonもTextBoxもControlを継承しているの
if (mode == 1)
{
 objs = new System.Windows.Forms.Button[len];
}
else
{
 objs = new System.Windows.Forms.TextBox[len];
}
0863デフォルトの名無しさん2015/06/26(金) 22:24:28.29ID:OIUfWa0r
スクリプト言語使いはスコープの概念を知らないか…
0864デフォルトの名無しさん2015/06/26(金) 22:33:04.77ID:jWa9J4oZ
配列の共変性を使うのはお勧めしないな
Javaの負の遺産みたいなもんだ
>>862だと結局後で型チェック&ダウンキャストをしない限りは
わざわざ配列の型を作り分ける意味がないわけだし
0865デフォルトの名無しさん2015/06/27(土) 04:21:47.51ID:o3dT3qrp
ここまで丁寧に教えてもらったなら、もう大丈夫だろう
0866デフォルトの名無しさん2015/06/27(土) 04:43:08.62ID:6yK3ftLr
元の質問者は、型のシステムが理解できてないのか、スコープが理解できてないのかわからん
たぶん両方理解できてないんだろうけど
0867デフォルトの名無しさん2015/06/27(土) 07:38:59.62ID:iDD3CLpV
>>864
もともと同じ変数に入れようとしてるわけだし、それは込みじゃね?

それになんかオブジェクト指向してる気がして楽しいだろ
初学者には楽しさも必要
0868デフォルトの名無しさん2015/06/27(土) 07:39:37.05ID:iDD3CLpV
あーそれともダックタイピングを無意識に要求していたのかな
0869デフォルトの名無しさん2015/06/27(土) 17:08:22.40ID:R5WbdKN1
int[] i = {1, 2}
という配列があるとして、i[0]をa変数に、i[1]をb変数に入れるのをスマートに行う方法はないでしょうか?

Pythonであれば
a, b = i
のようにできることをやりたいです。

今は
int a = i[0]
int b = i[1]
としているのですが、もっとスマートにする方法はないかと考えています。
0870デフォルトの名無しさん2015/06/27(土) 17:10:53.30ID:xbG7ljXN
ない
C#はスクリプト言語ではないので、そういうタプル的な値を扱うときは
ちゃんとクラスを定義して使うのが普通
0871デフォルトの名無しさん2015/06/27(土) 17:14:17.28ID:xbG7ljXN
ちなみにクラスを定義する簡単な方法としては、
var i = new { a = 1, b = 2 };
(使うときは Console.WriteLine(i.a)のようにする)
のように書ける匿名型という機能がある
System.Tupleなんてのもあるが言語でサポートされてる訳じゃないのでお勧めしない
0872デフォルトの名無しさん2015/06/27(土) 17:34:09.37ID:R5WbdKN1
ありがとうございます。
そのiは実際にはReadLineで読み込んだ文字列をSplitしてintに変換したような配列になります。

なので、その配列に代入されているとインデクサでアクセスする必要が有るため、わかりやすい変数名をスマートに付けれる方法がないかと思っていました。
C#を勉強し始めたところでまだまだルールがわからず、スクリプト言語の考えを前提に持ってしまっているのかもしれません。


ありがとうございました。
0873デフォルトの名無しさん2015/06/27(土) 21:23:40.36ID:n+6r1LD8
>var i = new { a = 1, b = 2 };

初心者ですがこれはじめて知った
無名関数は知ってたけど、これは便利だな
0874デフォルトの名無しさん2015/06/28(日) 03:54:38.43ID:w++X9/Nf
2次元配列をforeachで回すのはどうすればよいのでしょう
以下はエラーが出てしまいます

int[,] cards = new int[100,2];
foreach (int[,] card in cards)
0875デフォルトの名無しさん2015/06/28(日) 04:10:59.08ID:x/T4p/ZN
foreachを多次元配列に対して使うとSelectMany()メソッドみたいに平坦化してしまうから
気になるなら普通にfor文を使った方がいい

int[,] cards = new int[100, 2];
foreach (var card2 in cards) {
Console.Write(card2 + " ");
}
Console.WriteLine();
0876デフォルトの名無しさん2015/06/29(月) 23:24:49.10ID:bidzkCNd
こんばんは。
教えてください
VSでwebサイトを作っています。
SQLにある温度計データを引っ張ってきてグラフ化して
推移を見ています。

Chartとデータソースを使用していて問題なかったのですが、
過去分のデータが見たいなと思ったとき今のやり方では見れません。
(データソースの構成で最新100件でグラフにしています。)

そこで、ドロップダウンリストから年月を指定して
その中で100件のデータを引っ張りグラフ化したいです。

分からない点としては、正直、全部なのですが
SQLサーバーにdate(例:2015/06/29/23:00:00)temp(例:20.2)
とある場合はドロップダウンリストで年月を選択する方法がわかりません。

SQLサーバーに上のような形式で入っている時点で
年月のみ抽出というのは不可能なのでしょうか?

SQL言語の質問かもしれませんが
きっとクラスを作成するだろうと思い
こちらに記入しました。

どなたか知恵をお貸しください。
よろしくお願いします。
0877デフォルトの名無しさん2015/06/29(月) 23:49:23.72ID:lRRDyv15
株価のチャートを自作したいす
0878デフォルトの名無しさん2015/06/30(火) 00:05:34.96ID:LiiqQaQT
>>876
SELECT date, temp
FROM お前の表
WHERE ? <= date AND date <= ?
LIMIT 100
?にはそれぞれ開始日時と終了日時をバインドする
0879デフォルトの名無しさん2015/06/30(火) 02:36:45.32ID:RyZIYf8u
between、、、
0880デフォルトの名無しさん2015/06/30(火) 02:49:11.94ID:9tUPOc+y
null許容型(int?とか)ってあまり?使わない方が良いって聞いたんですが、なぜですか?
0881デフォルトの名無しさん2015/06/30(火) 03:25:56.90ID:AoMT9Nrc
データベース以外でってこと?
0882デフォルトの名無しさん2015/06/30(火) 03:58:23.92ID:9tUPOc+y
すみません、あやふやなんですが何かの掲示板(多分2ch)で
結構前に「null許容型はやめろ(クソ)」的なレスが結構続いてたので、聞いてみました

逆にデータベースでは、例えばBooleanならtrueとfalse以外「値が未設定」を表現するために
nullを使うと思いますが、そういう用途ではOK(問題ない)という事ですか?

また、逆に問題が出る使用例があれば教えて下さい。
0883デフォルトの名無しさん2015/06/30(火) 04:24:21.76ID:AoMT9Nrc
>>882
ここ読んでさらに疑問があれば質問すれば
https://code.msdn.microsoft.com/windowsdesktop/7-null-null-null-48ae7f82

むやみに使うのではなく使うことで可読性が良くなりバグも減るなら使えばって感じのこと書いてある
0884デフォルトの名無しさん2015/06/30(火) 04:35:41.24ID:AoMT9Nrc
データベースでNULLを排除したコードを書くのは非現実的だとも書いてある
0885デフォルトの名無しさん2015/06/30(火) 04:55:25.65ID:9tUPOc+y
>>883
ありがとうございます
0886デフォルトの名無しさん2015/06/30(火) 08:39:43.88ID:6xoEPUUH
>>878
convertでyymmにして拾うのとどっちが早いんでしょう
C#じゃないけど
0887デフォルトの名無しさん2015/06/30(火) 15:26:37.90ID:Sta9LMr5
WebでSQLを使うときはSQLインジェクションが起こらないように注意して作らんとな
0888デフォルトの名無しさん2015/07/01(水) 13:39:30.86ID:kfPim06m
WPFでボタンをクリックするとウェブページを非同期で取得するプログラムを
書いたのですが
自作ライブラリ内でこのように記述するとtask.Wait();でGUIが応答しなくなります
var task=GetWebPageAsync(webUri);
task.Wait();
string htmlText = task.Result ;
処理を追ってみるとGetWebPageAsyncメソッド内の下記の部分のあと
GUIが表示され処理が中断されるみたいです
HttpResponseMessage res = await client.GetAsync(uri);
理由がよくわからないまま
string htmlText= await GetWebPageAsync(webUri);
と書き直すと処理が実行されました
何が問題なのでしょうか
0889デフォルトの名無しさん2015/07/01(水) 13:55:31.70ID:lMyegDBc
>task.Wait();
>string htmlText = task.Result ;

ここでバリバリ終了を待ってるじゃん。バリバリ。
0890デフォルトの名無しさん2015/07/01(水) 13:59:45.12ID:kfPim06m
もう一つわからないのが>>888で取得したデータを
HogeItemsに設定してListBoxにバインドしているのですが
ListBoxに表示されません
ページの取得とプロパティの値に設定は出来ています
MVVMフレームワークとしてPrismを使用してます

<ListBox ItemsSource="{Binding HogeItems}" Height="500">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Title}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>

コンストラクタ内
SearchCommand = new DelegateCommand(() => {HogeSearch();});

private async void HogeSearch(){
var list = await Hoge.SearchAsync();
this.HogeItems = new ObservableCollection<HogeItem>(list);}
0891デフォルトの名無しさん2015/07/01(水) 14:22:19.59ID:kfPim06m
>>889
それが下記サイトを参考にコンソールアプリで作っていたときは
問題なくタスク完了したのですが
WPFで利用するとGUIがフリーズしてタスクが完了しません
フリーズするだけならわかりますが、タスクが完了しないのがなぜなのかわかりません

.NET TIPS:Html Agility Packを使ってWebページをスクレイピングするには?[C#、VB] - @IT

http://www.atmarkit.co.jp/ait/articles/1501/27/news140.html


.NET TIPS:HttpClientクラスでWebページを取得するには?[C#、VB] - @IT

http://www.atmarkit.co.jp/ait/articles/1501/06/news086.html
上のページから抜粋
webTask.Wait(); // Mainメソッドではawaitできないので、処理が完了するまで待機する
0892デフォルトの名無しさん2015/07/01(水) 14:30:33.50ID:LLinkmjy
HogeItemsプロパティの変更通知はちゃんとしてるのか?
0893デフォルトの名無しさん2015/07/01(水) 15:38:30.48ID:kfPim06m
HogeItemのプロパティに変更通知を設定しないとだめだったんですね
ObservableCollectionに入れれば必要ないと思ってました
0894デフォルトの名無しさん2015/07/01(水) 19:48:54.41ID:DTddCrxB
>>888
コンソールアプリとwpfみたいなguiアプリではTaskの実行コンテキストが違うからってのがあるかな。

メインでResultを受け取るには、awaitの後にConfigureAwait(false)が必要。
var ret = await Abc().ConfigureAwait(false);

別のやり方としては、WaitとかResultで受け取らず、ContinueWithで以降の処理を囲むという手もある。
まあ、この方法はイベントハンドラの中の改変量が多くなるけど

c# Task 実行コンテキスト 辺りの言葉で探してみるといいよ
0895デフォルトの名無しさん2015/07/01(水) 20:12:55.47ID:cqLm13Og
知ってると思うけどasync/awaitを使う関数はTaskもしくはTask<T>を返さないといかんよ
0896デフォルトの名無しさん2015/07/01(水) 20:52:29.17ID:+trI441A
>メインでResultを受け取るには、awaitの後にConfigureAwait(false)が必要。

何言ってるんだこのばかは
0897デフォルトの名無しさん2015/07/01(水) 21:47:59.99ID:lMyegDBc
つまりスレの総意としては、「初心者にasync/awaitを触らすな」でおkだな
0898デフォルトの名無しさん2015/07/01(水) 21:55:16.01ID:TcFd+yBB
>>895
正確には「イベント処理だけはvoidでそれ以外はTask/Task<T>を返すべき」って事だな

http://neue.cc/2013/10/10_429.html

ここに async void がまずい理由がうまくまとめられてる
あと

http://stackoverflow.com/questions/14177891/can-somebody-please-explain-async-await

こういう所を読めばasync/awaitの意味が直感的に理解できるだろ
最初からUIせずにまずコンソール画面で遊んでみるといいと思う
0899デフォルトの名無しさん2015/07/01(水) 22:05:16.30ID:8z426iG1
そもそも結果を返さない非同期処理は避けるべきだろ
Taskで副作用やると簡単にスパゲッティの出来上がり
0900デフォルトの名無しさん2015/07/01(水) 22:10:43.83ID:TcFd+yBB
だな
永久ループのTaskとか誰得
0901デフォルトの名無しさん2015/07/01(水) 22:20:52.29ID:/J4bS24z
今までWeb系とかやったことなくてASP.NET MVC5実践プログラミングっての買って触ってみてるんだけど、
新しいWebサイト追加したらファイルがものすごい数できてワロタ・・・みんなこれをすいすい使えるとかすげえな・・・
0902デフォルトの名無しさん2015/07/01(水) 22:34:28.57ID:XZhIE+dJ
大丈夫
ほとんどのドカタは理解せずに使ってるだけ
0903デフォルトの名無しさん2015/07/01(水) 22:37:28.27ID:jqzDD9Cy
拡張子aspxで(特に速度面で)まともなサービスを見たことがない
理解せずにドカタが使ってるという指摘は恐らく正しいのだろう
0904デフォルトの名無しさん2015/07/01(水) 22:40:59.12ID:/J4bS24z
まじか。まあ自分も触って2日目だから諦めずに進めるよ。がんばって一流の土方になるよ
0905デフォルトの名無しさん2015/07/01(水) 22:41:40.43ID:8z426iG1
Webなんか所詮来たリクエストに文字列返すだけやで
0906デフォルトの名無しさん2015/07/01(水) 22:43:07.86ID:G2Z5fyBt
ASP.NET MVCは.aspxより体感で10倍ぐらい遅い。
ログインページとかのチンケなビューを表示させるだけで
相当な処理時間を要する。
0907デフォルトの名無しさん2015/07/01(水) 22:50:54.07ID:/J4bS24z
aspxっていうのはweb Formsっていう認識であってます?
ネットで調べたときはMVCが主流とあったので、先攻してMVCをやってるんだけど、
まだ結構業務とかでは使われてるものですかね?

一応赤間信幸さんのWebアプリケーション構築技法っていう本を
数百円でゲットしてあるので平行して進める予定です。
0908デフォルトの名無しさん2015/07/01(水) 22:50:58.15ID:fbUsRR4f
MVCってそんなに遅いの?
0909デフォルトの名無しさん2015/07/01(水) 22:53:29.97ID:8z426iG1
使い方が間違ってるだけ
0910デフォルトの名無しさん2015/07/02(木) 00:14:50.49ID:6NbSjz3o
>>895
>>898
データバインディングと非同期 ? C# Advent Calendar 2014 | kekyoの丼
http://www.kekyo.net/2014/12/21/4638

※一部抜粋
この例は本物(CLR)のイベントハンドラではありませんが、
ICommandによって間接的に呼び出されるコールバックとして、
広義において同じと見なしても良いと思います。

このように説明されていたのでasync voidを使用したのですが問題有りますか?
そもそもAction型なので戻り値が設定できません

コンストラクタ内
SearchCommand = new DelegateCommand(() => {HogeSearch();});

private async void HogeSearch(){
var list = await Hoge.SearchAsync();
this.HogeItems = new ObservableCollection<HogeItem>(list);}
0911デフォルトの名無しさん2015/07/02(木) 00:59:43.49ID:Eju8VvyX
>>910
そういうのは、イベントと同じで仕方なくasync voidを使うケースになるんじゃないかな。
それしか手段がないということで。
0912デフォルトの名無しさん2015/07/02(木) 01:25:55.14ID:izkJyB4/
実行中の他のフォームに対してString^を渡したいんですけど、C#の超初心者なんで、
EnumWindowsでタイトルを探してHWND取得して、マーシャルした*TCHARでグローバルATOMを作成して
SendMessageで渡すという方法くらいしか思いつきません
なんかかっこいい方法ありませんか?
0913デフォルトの名無しさん2015/07/02(木) 01:31:29.80ID:tXGVZqg3
async/awaitの使い方に関してはこの辺り読んどけ

http://blog.stephencleary.com/2012/07/dont-block-on-async-code.html
https://msdn.microsoft.com/ja-jp/magazine/jj991977.aspx
0914デフォルトの名無しさん2015/07/02(木) 01:47:17.82ID:1taOWumU
>>910
値を返す必要がない非同期なんだからTask.Factory.CreateNewでWaitなしでも同じ事だね
0915デフォルトの名無しさん2015/07/02(木) 01:52:04.59ID:1taOWumU
おっと間違えてた
メソッドのなかでさらにawaitやってるんだからメソッドの中でTask.Factory.CreateNewやればいいな
asyncを使う必要性はむしろ例外が投げられた時に適切に対処出来るかどうかに関係する
0916デフォルトの名無しさん2015/07/02(木) 08:03:29.48ID:XweApYF/
>>912
プロセス跨ぐならIPC
跨がないなら普通にメソッド呼べ
0917デフォルトの名無しさん2015/07/02(木) 22:51:37.10ID:4BNFPd6R
ポリモーフィックな処理を書きたいときって
インターフェースを使うのと仮想メソッドを使うので理論的にはどっちが速いの?
0918デフォルトの名無しさん2015/07/02(木) 23:39:26.50ID:AiijB2ck
変わらないんじゃないの?実測するしかないけど
abstructとvirtualの違いだよね?abstructは全てvirtualであるためなのか
virtualを付けるとコンパイルエラーになる

それからインターフェースのBaseを呼び出す事が出来ない

インターフェースは多重継承みたいな事をしたい時に使ってるけど
0919デフォルトの名無しさん2015/07/03(金) 09:06:24.07ID:t3F14P3X
デフォルトのawaitの外側でWaitしたらあかんよ。
0920デフォルトの名無しさん2015/07/03(金) 09:08:41.27ID:t3F14P3X
デッドロックするからね。
awaitは処理完了後UIスレッドに続きを実行させようとするが、Waitで完了待ちしてるからUIスレッドはいつまで待っても空かない。
双方待ちあってデッドロック。
0921デフォルトの名無しさん2015/07/03(金) 09:10:44.89ID:t3F14P3X
それを防ぐにはawaitのときにConfigureAwait(false)するなりが必要。
0922デフォルトの名無しさん2015/07/03(金) 09:13:12.96ID:t3F14P3X
つまり>>894は正しいわけだけどいきなりバカ言われて終わってるな。
0923デフォルトの名無しさん2015/07/03(金) 09:17:28.88ID:jZs8Gwbi
Twitterと勘違いして単文連投してんのか?ボケ
片山MZも似たような病気発症してるよな
アスペに共通する病なのか?
0924デフォルトの名無しさん2015/07/03(金) 09:17:49.13ID:aTUcbAAr
WPFでDataGridのItemSourceにObservableCollection<MyData>をBindingしているのですが、
ObservableCollection<MyData>の特定のデータを変更した際に、DataGridのスクロールを変更があったデータの位置(行)に移動したいです。
どのようにすればいいでしょうか?
0925デフォルトの名無しさん2015/07/03(金) 09:42:07.68ID:3rp9Mnby
>>922
ワロタ
たしかにそうだな
0926デフォルトの名無しさん2015/07/03(金) 09:43:40.63ID:mX8fKKOT
VMの変更時にメッセンジャーとか使ってVに通知してScrollIntoViewすればいいんじゃない
0927デフォルトの名無しさん2015/07/03(金) 09:47:04.79ID:aTUcbAAr
>>926
ありがとうございます、やってみます
0928デフォルトの名無しさん2015/07/03(金) 09:55:39.32ID:xTjRlvwx
>>927
ScrollIntoViewは仮想化切らないとマトモに動かないから中尉
0929デフォルトの名無しさん2015/07/03(金) 10:45:26.48ID:JghQIuWO
asp.net mvc でdbにsqliteを使うことはできますか?
0930デフォルトの名無しさん2015/07/03(金) 10:54:35.26ID:aTUcbAAr
>>928
ありがとうございます。
参考にさせて頂きます。
0931デフォルトの名無しさん2015/07/03(金) 11:50:01.29ID:7czX/gB0
>>929
使えるって実用に耐えるかってことなら無理だね。
素直にSQL Serverを使うべき。
0932デフォルトの名無しさん2015/07/03(金) 12:11:33.74ID:SPEM/1YO
>>917
インターフェイスは重い、仮想の方が速いってのが基本ではあるけど、最適化技術も進んでるので条件によってはほとんど変わらない。
まあでもやっぱり仮想の方が速いかな。
0933デフォルトの名無しさん2015/07/03(金) 12:23:00.35ID:JghQIuWO
>>931
実用に耐えれなくても大丈夫です。
sql serverだと勝手に色々やってくれて便利すぎるのでsqliteとかで中身理解しながら勉強したいなと思って
0934デフォルトの名無しさん2015/07/03(金) 14:23:52.58ID:rDeS7aaJ
それはDBMSじゃなくてORMの問題かと
SQLServerでいいからEF使わないで直接DbConnectionでSQL投げたらいい
0935デフォルトの名無しさん2015/07/03(金) 15:42:42.38ID:7czX/gB0
>>933
sqliteなんてサブセットだからちゃんとしたDBを学んだ人間が使うべきもの
勉強ならSQL ServerやPostgreSQLで学ぶべき
0936デフォルトの名無しさん2015/07/03(金) 15:47:24.03ID:uO8sjm4v
別に何を使ったっていいだろ
sqliteはスタンドアローンで動くしユーザーやら何やらDBサーバー側の設定を気にせず使えるからとっかかりは楽だと思う
0937デフォルトの名無しさん2015/07/03(金) 15:48:54.97ID:lmzcW47C
>>920
そうそうそうなんです、UIスレッドに戻ろうとして
Task.Waitで止まってます
わかりやすい、ありがとうございます
ってことは@ITのコードはコンソールアプリじゃないと機能しないようなものなんですね
0938デフォルトの名無しさん2015/07/03(金) 15:51:50.93ID:7czX/gB0
>>936
じゃあそれでいいです。
0939デフォルトの名無しさん2015/07/03(金) 16:06:51.66ID:jZs8Gwbi
だよな!
0940デフォルトの名無しさん2015/07/03(金) 16:07:54.64ID:lmzcW47C
http://qwerty2501.hatenablog.com/entry/2014/04/24/235849
ここがすごくわかりやすく説明してた
上記サイトの一文
・基本的にはライブラリ内でawaitする場合はConfigureAwait(false)すること


自分の問題はここだった
WebPageをダウンロードするライブラリを利用するメインで
例外をキャッチしたかった
0941デフォルトの名無しさん2015/07/03(金) 19:24:19.48ID:JghQIuWO
>>934
まだ勉強不足なんですけと、dbcontextを継承してそれをいじくるんですかね?
来週色々試してみます!
0942デフォルトの名無しさん2015/07/03(金) 19:58:43.81ID:uMdddorU
DBの勉強したいならEFの再発明を1回やっとけばおk
0943デフォルトの名無しさん2015/07/04(土) 02:55:41.29ID:A6eGrjpU
>>942
メンバ名とカラム名を自動で紐付けるような感じですよね
0944デフォルトの名無しさん2015/07/04(土) 12:41:38.87ID:u/y4FI+O
それだけじゃないけどな
クエリの動的生成やら更新の追跡やら自前でやると結構めんどくさいよ
0945デフォルトの名無しさん2015/07/04(土) 13:34:46.43ID:YKtPOMLD
更新の追跡ってなんですか??
0946デフォルトの名無しさん2015/07/04(土) 15:34:35.19ID:Yn2KkVMN
JavaのjBatchのようなバッチ処理のフレームワークありませんか?
0947デフォルトの名無しさん2015/07/06(月) 16:55:53.12ID:y9JP5enm
http://www40.atwiki.jp/spellbound/pages/1405.html

ここを見てストップウォッチを作っているのですが、うまくいきません

基本的な事が出来たのでテストすると、1時間までは正常表示されるのですが
1時間以上経過すると「分」を表示する部分が「2時間235分」とか表示されてしまいます

// start押したら計測開始
time_A += Time.deltaTime;
// Textコンポに表示
timer_A.text = Mathf.Floor(time_A / 3600f).ToString() + "時間 " + Mathf.Floor(time_A / 60f).ToString() + "分 " + Mathf.Floor(time_A % 60f).ToString();

やってる事はunityですが質問はC#だと思うので、こちらで質問させて頂きました
何かアドヴァイスを頂きたいのですが、どうしたらいいでしょうか?
0948デフォルトの名無しさん2015/07/06(月) 16:58:18.01ID:YYyieqqT
例えば2時間30分のときにtime_Aにはどんな値が入ってて、それを60で割って表示したらどんな値が出力される?
0949デフォルトの名無しさん2015/07/06(月) 17:08:41.01ID:y9JP5enm
>>948
time_Aには9000・・・?
60で割ると150ですかね
あまり自信ないです・・・
0950デフォルトの名無しさん2015/07/06(月) 17:12:12.71ID:YYyieqqT
>>949
150になるなら、2時間150分って表示されることになるだろ?だから150になるような計算じゃなくて30になるようにしないと駄目
0951デフォルトの名無しさん2015/07/06(月) 17:15:47.28ID:Rsiji3ml
ヒントは秒の所に
0952デフォルトの名無しさん2015/07/06(月) 17:17:33.59ID:y9JP5enm
>>950
あー・・・なるほど
たぶん分かったと思うので、試してみます
ありがとうございました。
0953デフォルトの名無しさん2015/07/06(月) 17:25:47.09ID:yvuAj/xu
>>947
まんまstopwatchクラスとかあるんだが
0954デフォルトの名無しさん2015/07/06(月) 21:42:25.14ID:aXZfp9EM
ま、誰もが一度は通る細道よ
もぞもぞっとしてああそうか、で終わりよ
0955デフォルトの名無しさん2015/07/07(火) 08:30:09.15ID:U6+aOXmn
C#もメソッドの複数戻り値欲しい
対応する他の言語も増えてるんだし
あ、Tupleは論外です
0956デフォルトの名無しさん2015/07/07(火) 08:41:53.84ID:TS0XlDWE
言語仕様にごちゃごちゃ言えるレベルかよ
コード書いてろよタコ
0957デフォルトの名無しさん2015/07/07(火) 08:46:01.63ID:ZxkWSQzJ
その複数の戻り値を格納したクラスのオブジェクトを返せばいいだけでは
0958デフォルトの名無しさん2015/07/07(火) 09:23:42.50ID:pk39sm1t
dynamicでむちゃくちゃシンプルに複数戻り値のメソッド記述できるだろ
0959デフォルトの名無しさん2015/07/07(火) 09:53:13.21ID:PjK/lpsq
連想配列を使うのが流行ってる
0960デフォルトの名無しさん2015/07/07(火) 11:46:55.79ID:kBfZhVx2
>>955
なぜ論外なのか教えてください
0961デフォルトの名無しさん2015/07/07(火) 12:12:07.88ID:qt5SIPya
メソッドから複数の戻り値返せるような言語の例をあげて欲しいんだが
0962デフォルトの名無しさん2015/07/07(火) 12:15:50.25ID:EDjn9D6L
Go、Scala、python、perl、ruby
0963デフォルトの名無しさん2015/07/07(火) 12:17:20.40ID:IXTBYhaq
tuple返したらだめなん?
0964デフォルトの名無しさん2015/07/07(火) 12:18:44.80ID:mRhwc0pv
>>958
どうやるん?
0965デフォルトの名無しさん2015/07/07(火) 12:19:07.82ID:sTXZljFQ
>>957
それだと最大でメソッドごとにクラスが必要でクラスごとにプロパティを持つことになりますね
これが陳腐、非生産的なので複数戻り値をサポートする言語が増えています
>>958
dynamicは実行速度が低速なので論外です
0966デフォルトの名無しさん2015/07/07(火) 12:28:03.41ID:WTwMH7IK
C#にも匿名型があるじゃん
0967デフォルトの名無しさん2015/07/07(火) 12:30:19.81ID:sTXZljFQ
ほぅ、では匿名型で書いてみましょうか
どうなると思います?
0968デフォルトの名無しさん2015/07/07(火) 12:40:17.61ID:qt5SIPya
>>962
Goは確かにできるみたいだな。これは面白そうではあるけど
それ以外で直接、複数戻り値返せるのはなさそうだけど?
あくまで戻してるのは配列やリストだろ。それを複数変数に一括代入できるだけで
だったらC#でもオブジェクトの配列でも戻せば良いんじゃね
オブジェクト指向としての設計方針がどうなのかはしらんが

匿名クラスが戻り値に指定出来れば面白いかもしれんのだがなぁ
出来ない事は無いような気がするんだが、やらない方針なのか
0969デフォルトの名無しさん2015/07/07(火) 12:43:35.50ID:pk39sm1t
>>964
private void button1_Click(object sender, EventArgs e)
{
var packed = GetHoge ();
if (packed.IsOK)
{
textBox1.Text = packed.Name;
}
}

private dynamic GetHoge ()
{
return new { Name = "ほげ", IsOK = true };
}
0970デフォルトの名無しさん2015/07/07(火) 12:48:04.38ID:TS0XlDWE
うんこに触りまくりだなキミら
0971デフォルトの名無しさん2015/07/07(火) 12:49:18.70ID:pk39sm1t
>>965
速度が必要なところではクラスを使って問題ないところでdynamic
使い分けがめんどくさいなら他の言語に行けば
0972デフォルトの名無しさん2015/07/07(火) 12:54:29.41ID:EDjn9D6L
>>968
内部的にはどの言語も戻してるのは配列やリストだし、C#でも同じことはできるが
例えばperlなら下のように簡単にできるってのがメリットってだけだからな

sub a { return (123, "abc"); }
my ($aaa, $bbb) = a();
0973デフォルトの名無しさん2015/07/07(火) 13:00:51.91ID:mRhwc0pv
>>969
ありがとー
名無しクラスで返すのか
0974デフォルトの名無しさん2015/07/07(火) 13:15:07.21ID:qt5SIPya
匿名型は型もってるけど、ダイナミックは結局Object型だからなぁ
結局のとこタイプセーフどうすのって話になるかと

なんか構想はあるみたいだな
https://ufcpp.wordpress.com/2015/02/11/c-7%E3%81%AB%E5%90%91%E3%81%91%E3%81%A68-tuples/
0975デフォルトの名無しさん2015/07/07(火) 13:20:39.70ID:pk39sm1t
>>974
>結局のとこタイプセーフどうすのって話になるかと
そこがね、結構な弱点ではある
0976デフォルトの名無しさん2015/07/07(火) 13:30:42.49ID:HWlVqIKe
>>963
というよりこの話題でタプルを別に考えなくていいやんと思う
タプル返すならそれでいいやんって思う

しかもrubyの場合は単にArrayなんじゃなかった?(あやふや)
それだとしてもそれでいいやんって思う

用は単にx, y = fと書きたいだけじゃないのみんな
0977デフォルトの名無しさん2015/07/07(火) 13:46:51.67ID:mRhwc0pv
>>976
publicなメソッドでitem1、item2、...はあかんわ
0978デフォルトの名無しさん2015/07/07(火) 14:48:50.22ID:PIoug+Wj
>>977
ごめん、C#のSystem.Tupleについては存在すら知らなかった
ocamlのタプルを勝手に想像してて
(x, y)やカッコも省略できるんでx, yもタプル
let a, b = (1, 2);;
こういうのを勝手に想像してたすまそ
0979デフォルトの名無しさん2015/07/07(火) 16:52:35.77ID:qt5SIPya
>>976
>用は単にx, y = fと書きたいだけじゃないのみんな
俺はこれは嫌だな。fにx,yが内包されている事がわからんから
これだったらそれこそf.item1,f.item2で良いわけで、今のタプルで良いかと
f.なになに で、名前と型が維持されてないとダメだ
0980デフォルトの名無しさん2015/07/07(火) 17:05:13.40ID:qt5SIPya
そういえば上の方で、タプルは
>言語レベルでのサポートがない言語で使うべきではない
って力説してた人がいたなぁ

dynamicは遅いから論外だって言ってるけど
>>955がタプルを論外だと言う理由は何だろ
0981デフォルトの名無しさん2015/07/07(火) 17:39:44.26ID:gSeUuLQi
>>979
あぅ…つくづくスマン

> x, y = f

これは f() の意味ね
あなたの論旨に対して瑣末なことではあるが一応訂正しとく
0982デフォルトの名無しさん2015/07/07(火) 20:16:16.46ID:fVR/pyHV
ふらふらっと
0983デフォルトの名無しさん2015/07/07(火) 20:56:38.80ID:n0YcJJeB
次期バージョンで複数戻り値がサポートされそうってのがあったけどいつの間にかなくなったしな
0984デフォルトの名無しさん2015/07/07(火) 23:21:04.78ID:pk39sm1t
>>980
きっとitem1、item2...ってなるのが気に入らないんだよ
0985デフォルトの名無しさん2015/07/07(火) 23:35:34.00ID:LHx3NAum
まぁそれでもないよりはましなのかなC#にとって
C++でもpairってやっぱ、要所要所で欲しいし
白状するとC#でもpair<T1,T2>みたいなん作って使っちゃってます
first, secondってのも名前としてはまぁそうなるよねって感じ
item1, item2...とそう変わるもんじゃあない
0986デフォルトの名無しさん2015/07/07(火) 23:41:44.85ID:oR9xV2kd
>>980
あれはタプルって読むのか。
ずっとチュープルだと思っていた。
tupleなんて使わないよなあ。
必要なら構造体を定義する方が分かり易いし。
0987デフォルトの名無しさん2015/07/08(水) 00:23:28.32ID:k/qBkFOv
しかも構造体なら値型だしね
多くの場合そっちのほうが望みどおりだろう
0988デフォルトの名無しさん2015/07/08(水) 00:49:17.62ID:8+ik3mP9
静的型付けとかJITとかのあたりの仕組みが全く理解できなくてワロタwww・・・

どうすればいいですか・・・?
0989デフォルトの名無しさん2015/07/08(水) 00:59:06.73ID:drHIjVcg
>>986>>987
数学の世界ですら
円の方程式ならy=±√(r^2-x^2)で解は2つ、三次方程式なら解は3つといった具合に、純粋関数が複数戻り値を返す
タプルの概念自体を否定するのはおかしいし、それを構造体やクラス化するのもまたおかしな話し
数学というモデルが存在する以上、いずれC#も対応せざるを得ないんじゃないのかな
0990デフォルトの名無しさん2015/07/08(水) 01:07:25.57ID:889KT988
√2などを表現できる数値型がないとおかしい
まで読んだ
0991デフォルトの名無しさん2015/07/08(水) 01:22:35.57ID:K3Unqfxi
あれば使うだろうが無けりゃ無いでどうでもいいわ
無いとプログラム書けない奴はコールドスリープにでも入って50年後に目覚めてろ
0992デフォルトの名無しさん2015/07/08(水) 01:54:58.88ID:4m9Vq9W3
>>983
>974のissueはまだ続いてるみたいだし、なくなったって訳じゃないんじゃね?
割と大きな変更になりそうだから後に回されただけで。
0993デフォルトの名無しさん2015/07/08(水) 01:59:21.89ID:PAkk6Hqa
>>989
数学とプログラミングを無理矢理に
関連付けてヘンテコな説を唱えて
一人悦に入って居ればいいよ。
0994デフォルトの名無しさん2015/07/08(水) 06:17:01.48ID:7qvaXLbV
数学に可読性や保守性なんていう概念はないだろう
数学だとほとんどの場合一文字変数しか使わないけど、
だからってC#でも常に一文字変数を使うべきだと?
0995デフォルトの名無しさん2015/07/08(水) 09:09:41.81ID:wIKfbX0j
皆の希望を全部いれた言語なんてろくなモンにならん
09969802015/07/08(水) 16:34:36.23ID:K7cQm9JH
次スレってどうやって立てるんだ
新規スレッド作成画面から作成したはずなんだが
0997デフォルトの名無しさん2015/07/08(水) 16:46:33.07ID:HMKJDSG5
>>996
したはず ってことは、もう勃ってるんだろ?
リロードすればいいだろ。
09989802015/07/08(水) 16:48:45.27ID:K7cQm9JH
したはずなんだが出てこない
2回やっちまったけど、これで出来てなかったら誰か頼むわ
0999デフォルトの名無しさん2015/07/08(水) 17:42:08.39ID:rwtUEn+Z
http://peace.2ch.net/test/read.cgi/tech/1436344868/
立てたよー

>>998
なんか立てたはずなのに立ってないってのがちょくちょくあるっぽい
1000デフォルトの名無しさん2015/07/08(水) 18:11:25.27ID:t2tbnUcj
せん
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。