ふらっと C#,C♯,C#(初心者用) Part117 [転載禁止]©5ch.io
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2015/10/02(金) 20:50:08.06ID:IGV3Viy6他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part116 [転載禁止](c)2ch.net
http://peace.2ch.net/test/read.cgi/tech/1436344868/
■関連スレ
C#, C♯, C#相談室 Part89 [転載禁止](c)2ch.net
http://peace.2ch.net/test/read.cgi/tech/1443271409/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
0002デフォルトの名無しさん 転載ダメ©2ch.net
2015/10/02(金) 21:08:10.59ID:FjrmJ/eh[DllImport("hoge.dll", EntryPoint="hoge")]
extern static int hoge_x86( int i);
[DllImport("hoge_x64.dll", EntryPoint="hoge")]
extern static int hoge_x64( int i);
public static int hoge( int i)
{
if( System.IntPtr.Size == 4 )
{
return hoge_x86( i );
}
else
{
return hoge_x64( i );
}
}
ではなく、
0003デフォルトの名無しさん 転載ダメ©2ch.net
2015/10/02(金) 21:11:20.55ID:FjrmJ/ehstatic{
if( System.IntPtr.Size == 4 )
{
dll="hoge.dll";
}
else
{
dll="hoge_x64.dll";
}
}
[DllImport(dll)]
extern static int hoge( int i);
public static int hoge( int i)
{
return hoge( i );
}
じゃ駄目なんでしょうか?
0004デフォルトの名無しさん
2015/10/02(金) 21:45:20.31ID:7HANc3XLやってみて駄目なら駄目なんだろうよ
0005デフォルトの名無しさん
2015/10/02(金) 21:53:18.86ID:N6iuQlgLListboxについて質問させて下さい
For i = 1 To n
List.Items.Add(i)
Next
これだと縦に1,2…nとリストされてしまい困っています
最終的に1(改行)1,2(改行)1,2,3(改行)1,2…nというリストを作るプログラムが作成したいのですが…
0006デフォルトの名無しさん
2015/10/02(金) 22:12:17.02ID:FjrmJ/eh出来たのは出来たんですけど、このように書いているサイトがなかったので、何故かと思って…
0007デフォルトの名無しさん
2015/10/02(金) 23:19:40.26ID:qOcFsPemclass extend :base
というクラスがあり
baseに
static base Create(){return new base()}
があります。
しかし、これだとextend.Create()としてもbaseが返ります。
base.Create〈extend〉()としてもいいのですが、やはりextend.Create()としたいところです。
継承クラスで同じ名前のstaticメソッドを上書きできますが、基底のみで対応することは可能でしょうか?
0008デフォルトの名無しさん
2015/10/03(土) 00:42:19.31ID:ysYK4f75VB.NETか
ここはC#スレ
まぁそれはいいとして
間にカンマいるのかしらんけど、こういうことか?
Dim sb As New System.Text.StringBuilder()
For i As Integer = 1 To n
sb.Append(i)
List.Items.Add(sb.ToString())
Next
0009デフォルトの名無しさん
2015/10/03(土) 05:59:57.10ID:XVf29bWAできないでしょ
0010デフォルトの名無しさん
2015/10/03(土) 08:34:44.85ID:GmUX5JOaあ、書いた時点ではエラーでなかったですけどコンパイルしたらおかしくなりました
0011デフォルトの名無しさん
2015/10/03(土) 10:12:23.64ID:pt22Iv4Qpythonのclassmethodやね
たぶん、↓くらいしかできない
http://stackoverflow.com/a/2070448
0012デフォルトの名無しさん
2015/10/03(土) 16:20:15.81ID:hORN2AoM全スレ後半のデータベースの話は非常に参考になった
>localDB
この存在すら知らなかった
検索してもSqlCEやSQLiteばかりだし
利用する方法もEntityFrameworkばかりで苦労してやっとできたけど
localDB使う方法だと面倒な導入手続き無しにすぐ始められた!
>dapper
この存在も知らなかった
速さに関しては今のところEntityFrameworkでも特に問題ないけど
速くてかゆい所に手が届き、面倒なマップが手軽になっているので
これは使ってみたいと思った
EntityFrameworkだと大量にdllファイルができるし、自動化によって裏で何をしているいのか
よくわからないので不安感が付きまとう
SQLite+dapperでやってみようかな
0013デフォルトの名無しさん
2015/10/03(土) 19:47:53.51ID:g7xKsIu0奇遇だな。俺もDB五日目くらいだよ。
>localDB使う方法だと面倒な導入手続き無しにすぐ始められた!
と言いながら、
>SQLite+dapperでやってみようかな
というのは何故?
LocalDBよりもSQLite+dapperのほうがいいの?
0014デフォルトの名無しさん
2015/10/03(土) 19:57:11.23ID:VaoKZsdf0015デフォルトの名無しさん
2015/10/04(日) 00:15:20.07ID:iyBr7bUFlocalDBはC#でしか使われないのと
SQL Serverは導入は簡単だったけど
実際使い出すと奥が深くてとんでもなく難しそう
ノンプロなんで業務アプリを作ることもない
SQLiteは他言語や携帯端末にも使われていて
汎用的で情報も多いし簡単で配布にも便利
使い回しの効く技術学んだほうがいいかなーって思って
0016デフォルトの名無しさん
2015/10/04(日) 10:13:04.57ID:TDTWj9Zsyouは色々と勘違いしているよ
LocalDBは利用側の言語は問わないよ、VBAからだって使える
奥が深いのは当然、現在のLocalDBはT-SQL完全互換なのよ
SQLiteも良いね、でも汎用的かと言えば少し違うかもね
用途によってはSQLiteの方が良いというだけよ
だから使い回しの効く技術という点ならSQL Serverに軍配が上がるね
0017デフォルトの名無しさん
2015/10/04(日) 10:53:53.27ID:FsLwYc7A> SQLite+dapper
勉強する価値はありますか?
0018デフォルトの名無しさん
2015/10/04(日) 15:49:22.81ID:FUfjHrs1SQLite+EF6はだめだった
既存のDBにレコードを追加参照するだけなら簡単だったけど
動的にDBやテーブル作ろうとすると無理だった
LocalDB+EF6はモデルからデータベース作ろうとしたら
SQL Serverのダイアログが出てサーバー名とか出てきてなんだこれってなって
何を入力してもデータベースがどうたらとエラーが出る
それにランタイムみたいなので動いているようでめんどくさいと思った
調べるとLocalDBはあくまでテスト運用のためのもので
やっぱり業務アプリの開発者向けだったようだ
結局自分にはEF6は必要なかったという結論
それなら別にM$製のデータベースに拘る必要はないということで
SQLiteとそれを手軽に扱うMicro-ORMであるdapperという選択になった
SQLite+dapperを実際使ってみてSQL文を書かなきゃいけないのが面倒くさいが
SQLiteならチュートリアルサイトが山程ある
動的DB作成、動的テーブル作成もできた
導入もすんなり、全くエラー無し!
容量も14TBなので画像を保存しても気にしなくていい
EF前提でやってきた者からすれば
EFを使わなければこんなに簡単なんだって感動した
この選択肢で不満が出ることはないと思う
EFには二度と触らないと誓う
0019デフォルトの名無しさん
2015/10/04(日) 16:17:06.05ID:Vt6Jil15サブクラスで実装したいのですが…
javaだとabstractクラスにすれば実装しなくてもよかったんですが
0020デフォルトの名無しさん
2015/10/04(日) 16:52:15.00ID:WWC1qREk0021デフォルトの名無しさん
2015/10/04(日) 16:52:36.36ID:Vt6Jil15どうすればいいですか?
0022デフォルトの名無しさん
2015/10/04(日) 16:52:51.10ID:/6VAn0RfSQLite.netとかじゃダメなん?
0023デフォルトの名無しさん
2015/10/04(日) 18:00:36.61ID:0WB+oea1インターフェイスのメンバーにabstractつけりゃいいだろ
0024デフォルトの名無しさん
2015/10/04(日) 18:00:40.94ID:K/b1ABC4動的作成が必要ってよほどのシステムなんだな
ちなみに、EFのメリットは文字列SQLを扱わなくて済むことな
>>21
継承したクラスもabstractにする
0025デフォルトの名無しさん
2015/10/04(日) 18:03:28.27ID:K/b1ABC4>>24は忘れてくれ
0026デフォルトの名無しさん
2015/10/04(日) 18:35:52.48ID:Vt6Jil150027デフォルトの名無しさん
2015/10/04(日) 20:14:08.67ID:FsLwYc7Aおいらには難しい。何から始めたらいいのか。
0028デフォルトの名無しさん
2015/10/04(日) 20:25:58.00ID:4ZFUkYGv0029デフォルトの名無しさん
2015/10/04(日) 20:42:43.95ID:FsLwYc7A0030デフォルトの名無しさん
2015/10/04(日) 20:47:58.51ID:4ZFUkYGv0031デフォルトの名無しさん
2015/10/04(日) 20:53:49.03ID:FsLwYc7A0032デフォルトの名無しさん
2015/10/04(日) 21:16:12.67ID:4ZFUkYGv0033デフォルトの名無しさん
2015/10/04(日) 21:22:40.77ID:FsLwYc7A両方出来るわよ。openglはよく使ったわ。
0034デフォルトの名無しさん
2015/10/04(日) 21:26:32.67ID:Vt6Jil15と言う文字列から
args
を取り出すにはどうすればいいでしょうか?
GetDirectoryNameだとC:\Hogeになります
0035デフォルトの名無しさん
2015/10/04(日) 21:28:25.31ID:4ZFUkYGvなんだよ。初心者じゃないじゃん。神レベルじゃん。
0036デフォルトの名無しさん
2015/10/04(日) 21:33:14.06ID:0WB+oea1var path = @"C:\Hoge\args\";
var fileName = System.IO.Path.GetFileName( path.TrimEnd( '\\' ) )
0037デフォルトの名無しさん
2015/10/04(日) 21:36:42.41ID:Vt6Jil15ファイル名じゃなくてフォルダ名を取得したいです
0038デフォルトの名無しさん
2015/10/04(日) 21:40:47.99ID:GuH6DZcUマイナーなAPIだけど
new DirectoryInfo(path).Name
0039デフォルトの名無しさん
2015/10/04(日) 21:43:53.33ID:4ZFUkYGv再起
0040デフォルトの名無しさん
2015/10/04(日) 21:48:10.61ID:zHOzyLwfレスに文句ばっか言ってんじゃねーよ乞食
0041デフォルトの名無しさん
2015/10/04(日) 22:14:59.10ID:Vt6Jil15>>40
すみません
0042デフォルトの名無しさん
2015/10/05(月) 04:15:46.37ID:eQ2/zVIrhttp://ideone.com/cwKTg3
普通にできるじゃん
明示的実装してんの?
https://msdn.microsoft.com/ja-jp/library/aa664595%28v=vs.71%29.aspx?f=255&MSPPError=-2147217396
0043デフォルトの名無しさん
2015/10/05(月) 09:14:38.11ID:NpHnTe7L彼はhttp://ideone.com/bEzsTdを狙っているんでは?
出来なくても全く問題ないと思えるが、C#を欠陥言語だと揶揄したいのかな
0044デフォルトの名無しさん
2015/10/05(月) 10:35:28.87ID:LmMVGWnX強烈なコンプレックスを持ってるんだろうなあ…
0045デフォルトの名無しさん
2015/10/05(月) 15:46:26.20ID:eQ2/zVIrうーん、池沼としか言いようがないな
0046デフォルトの名無しさん
2015/10/05(月) 18:17:41.66ID:PVqgELRlDrawItemEventArgs.Indexに-1が渡されてくることがありますが
これってなぜ?
意味ないと思うんだけど。
だって描画しろというイベントでしょ?
いつも-1を除外するコードを書く度に思うんだけど!
と、ここまで書いて
背景を描けということなのかなと思い当たったけど合ってる?
0047デフォルトの名無しさん
2015/10/05(月) 19:45:13.85ID:W0LY67FTバインディングも融通が効くというか、わけわかんないというか、わけわかんないほう。
みんながerectronに飛びつくのもわかる気がするよ。
0048デフォルトの名無しさん
2015/10/05(月) 20:49:50.82ID:EY/b50y6どのみちHTMLは覚えなきゃならないし、HTMLで同じことは実現できるんだからわざわざWPFを使う理由がない
0049デフォルトの名無しさん
2015/10/05(月) 21:05:08.85ID:G+Q38Itw0050デフォルトの名無しさん
2015/10/05(月) 21:14:49.94ID:PVqgELRl0051デフォルトの名無しさん
2015/10/06(火) 16:36:11.30ID:H4LWLTNp確認画面も出ないのかよ
0052デフォルトの名無しさん
2015/10/06(火) 16:53:27.84ID:y3L8AxGi0053デフォルトの名無しさん
2015/10/06(火) 17:01:54.18ID:H4LWLTNp0054デフォルトの名無しさん
2015/10/06(火) 17:11:09.43ID:rJsBL5CgUpdate to revisionするとか
Show logからUpdate item to revisionするとか
0055デフォルトの名無しさん
2015/10/06(火) 17:25:06.67ID:UaXFQD8wな ん の は な し ?
0056デフォルトの名無しさん
2015/10/06(火) 18:51:35.50ID:b7EIiqyOどっちにしろアップデート要るからな
0057デフォルトの名無しさん
2015/10/06(火) 19:33:53.24ID:fQuxJtVKほ、ほら、SVNが適切にマージしてくれてるでしょ(震え声
0058デフォルトの名無しさん
2015/10/06(火) 21:04:13.40ID:eiV44Wn/0059デフォルトの名無しさん
2015/10/06(火) 23:55:21.99ID:EryYYvevクラスBのメソッド内でクラスAのメソッド使用
のような関係があるとき
依存性を減らすためにコンストラクタで相手のオブジェクトを受け取り、フィールドにセット
するような作りにしたいんですが、お互いにインスタンス作るには、もう片方が必要なため、作れません
こういうときはどういう作りにすべきですか?
テストコードを書くため、メソッド内で相手クラスをnewするのは無しでお願いします
0060デフォルトの名無しさん
2015/10/06(火) 23:59:03.30ID:8uRulS560061デフォルトの名無しさん
2015/10/07(水) 00:11:55.48ID:T1RoiOzFinterface IHage { void DoHage(); }
interface IHoge { void DoHoge(); }
class Hage: IHage {
private IHoge hoge;
public Hage(Func<IHage, IHoge> hogeFactory) { this.hoge = hogeFactory(this); } }
class Hoge: IHoge { private IHage hage; public Hoge(IHage hage) { this.hage = hage; } }
これで new Hage(hoge => new Hage(hoge)) としてインスタンス作ればいい
factoryを変えればテスト時にHageにダミーのIHoge実装を食わせることもできる
0062デフォルトの名無しさん
2015/10/07(水) 00:20:04.54ID:3pa+NQnnありがとうござました
0063デフォルトの名無しさん
2015/10/07(水) 00:24:26.54ID:T1RoiOzFnew Hage(hage => new Hoge(hage))
0064デフォルトの名無しさん
2015/10/07(水) 12:27:46.25ID:dQPZGG2o0065デフォルトの名無しさん
2015/10/07(水) 12:34:11.37ID:40NgKpJyダメなのは循環参照ではなく2つのクラスが相互に密結合する設計
0066デフォルトの名無しさん
2015/10/07(水) 12:51:31.86ID:dQPZGG2oVBスレでもそんなヨタを飛ばしてるバカがいたけど、.NETのイベントも
オブザーバパターンも実行時に参照を握るだけであってコード自体が循環参照してるわけじゃない
0067デフォルトの名無しさん
2015/10/07(水) 12:51:40.38ID:wgVSxFSaMethodB内では、クラスAのセッターを呼ぶ
みたいな処理は、どういう設計がいいんだろ?
>>61みたいにするのはよくない?
0068デフォルトの名無しさん
2015/10/07(水) 12:57:52.42ID:dQPZGG2oそんなことをしたくなる(しなきゃならない)時点でもう詰んでる。
クラスの切り分け方が根本的に不適切だからそうなる。
0069デフォルトの名無しさん
2015/10/07(水) 13:13:24.70ID:UidqiOp40071デフォルトの名無しさん
2015/10/07(水) 16:36:06.20ID:dQPZGG2oAがBに依存していないと偽装するという目的のためだけにインターフェイスIBを作ってBにかぶせても
AがBに依存している実態は何も変わらない。
そんなのただの欺瞞だ。
自分の欺瞞に自分で気づいてないなら自己欺瞞だな。
0072デフォルトの名無しさん
2015/10/07(水) 16:49:51.50ID:9sdQQKJG働けクソニート
0073デフォルトの名無しさん
2015/10/07(水) 18:25:15.82ID:wgVSxFSa間でやり取りするようなクラス追加したほうがいいってこと?
0074デフォルトの名無しさん
2015/10/07(水) 19:23:58.21ID:F4sBdgXs上位のクラスはProperyChangedイベントを監視するだけでいいし、下のクラスはPrism使うだけ
0075デフォルトの名無しさん
2015/10/07(水) 19:55:05.52ID:HxdUxcN3テスト時にダミーに差し替えるためだけの形式的なインターフェイスは普通に使われてるパターンだよ
嘘だと思うならVSのコードを逆コンパイルしてみたらいい
0076デフォルトの名無しさん
2015/10/07(水) 21:41:26.09ID:sdI3RqNo2015年1月のnumの合計を出したいのですが、
どのように書けば可能でしょうか?
public class TDATA
{
public string BID { get; set; }
public DateTime day { get; set; }
public int num { get; set; }
}
static void Main(string[] args)
{
var hoge = new List<TDATA>();
hoge.Add(new TDATA() { BID = "A001", day = Convert.ToDateTime("2015/1/1"), num = 1 });
hoge.Add(new TDATA() { BID = "A002", day = Convert.ToDateTime("2015/1/20"), num = 2 });
hoge.Add(new TDATA() { BID = "A001", day = Convert.ToDateTime("2015/2/11"), num = 1 });
}
LINQを調べてみたのですが、条件が複数あると、
なかなか理解できず、よろしくお願いします。
0077デフォルトの名無しさん
2015/10/07(水) 21:58:51.87ID:T1RoiOzFwhere x.day.Year == 2015 && x.Month == 1
group x by x.BID into g;
foreach (var g in groups) {
Console.WriteLine(“BID={0}, Sum={1}”, g.Key, g.Sum(x => x.num));
}
0078デフォルトの名無しさん
2015/10/07(水) 21:59:22.05ID:T1RoiOzF訂正
into g は不要
0079デフォルトの名無しさん
2015/10/07(水) 21:59:54.31ID:7k7eABWe0080デフォルトの名無しさん
2015/10/07(水) 22:01:55.66ID:7k7eABWevar sum = hoge.Where( tdata => tdata.day.Year == 2015 && tdata.day.Month == 1 ).Sum( tdata => tdata.num );
0081デフォルトの名無しさん
2015/10/07(水) 22:06:02.97ID:T1RoiOzFそれだとBIDでグループ化されてないよ
メソッド形式でSumまで一行で書くならこう
var sums = hoge.Where(tdata => 略)
.GroupBy(tdata => tdata.BID)
.Select(g => new { BID = g.Key, Sum = g.Sum(tdata => tdata.num) });
0082デフォルトの名無しさん
2015/10/07(水) 22:45:02.75ID:NHKi3h4oモデルというのはどのように考えればよろしいでしょうか
クローラーを作ろうとしていて、新着一覧のページを定期的にチェックしていて
新着一覧のページには投稿者のIDの一覧があります。
投稿者のIDから投稿者の詳細は別のページで参照する必要があるので、投稿者のIDをキーにしてローカルに保存しようと思うのですが
この時投稿者のモデルはIDだけで作るべきなのでしょうか、それともIDとその他名前等の情報を混ぜて作るべきでしょうか。
IDだけで作ると、投稿者という同じデータなのにIDだけのモデルと、名前等全ての情報があるフルデータのモデルの二種類が出来てしまいます。
名前等全ての情報でモデルを作ると、IDしか分からない段階では名前等のプロパティが空 (null?)になってしまいます。
後者の方が個人的にはいいかなと思うのですが、モデルという物に対して、このモデルはIDしか入っていない あっちのモデルは名前とか全部入っている。だから処理を分ける必要が・・・
というのは許されるのでしょうか
008376
2015/10/07(水) 22:53:54.57ID:sdI3RqNoやはり、LINQを使えば短いコードで
実現出来るのですね。
LINQの理解が低いので、
参考にさせて頂きます。
0084デフォルトの名無しさん
2015/10/07(水) 23:09:28.07ID:1Tzy0x1lわざわざ分ける必要は無いと思う。
とりあえず、IDから名前等々、全部定義したクラスを定義しておけばいい。
データ(オブジェクト)の状態をチェックするプロパティを持たせておいて、取得済みかどうか判定できるようにしておけばいいし、
取得できてない名前とかは、適当に空文字なり返すようにしておけばいい。
0085デフォルトの名無しさん
2015/10/07(水) 23:09:28.12ID:K9vCPUNulinq使いはツール使うことばっか覚えて地頭がクソなやつばっかだからな。
0086デフォルトの名無しさん
2015/10/07(水) 23:19:26.43ID:zlFawCtp0087デフォルトの名無しさん
2015/10/07(水) 23:41:59.93ID:T1RoiOzFそもそも、IDしかわからない中途半端な投稿者オブジェクトを
新着一覧クラスの外に晒す必要があるのかよく考えたほうがいいよ。
新着一覧クラスが投稿者ID文字列のコレクションを公開するのが嫌なら
新着一覧クラス自身に投稿者詳細をダウンロードしてくるメソッドを持たせたっていい。
もちろん賛否両論あるだろうけど、オブジェクト指向に拘るのであれば
オブジェクトから情報を取り出すのはなるべく避けて、オブジェクトに命令していくようにするのが基本。
0088デフォルトの名無しさん
2015/10/07(水) 23:54:33.19ID:ac/t6J3k許されるというか基本中の基本
すべてを1つのモデルに詰め込もうとするともれなく巨大な神クラスが出来上がるぞ
文脈に合った適度な粒度のモデルを必要な数だけ作るんだよ
まずはとりあえず取得と更新を分離しろ
0089デフォルトの名無しさん
2015/10/08(木) 00:27:57.95ID:edkXggJovar page=await NicoUtil.DownloadPageAsync(url);
page.UserIds.Add(userId);
var user=GetProfile(page.UserIds[0]);
user.Id=3945887;
user.IsNicoNamaNushi=false;
user.Description="";
UserDB.Add(user);
0090デフォルトの名無しさん
2015/10/08(木) 00:51:12.57ID:7dJhmaB1IDだけだったらそれはIDでしかないじゃんw
煽り抜きで愚問だね。
0091デフォルトの名無しさん
2015/10/08(木) 02:10:27.33ID:n5xoJkAg0092デフォルトの名無しさん
2015/10/08(木) 21:32:59.63ID:9yien46Kタグを除去してテキストだけを取り出す簡単な方法ありますか?
0093デフォルトの名無しさん
2015/10/08(木) 22:05:59.40ID:O6ws46yp0094デフォルトの名無しさん
2015/10/08(木) 22:22:34.18ID:9yien46K例えば
<label>文字の中に<タグもどき>が有る場合が難しそう</label>
なので、正規表現以外で良い方法有りませんか?
0095デフォルトの名無しさん
2015/10/08(木) 22:51:05.62ID:vx3KIWo30096デフォルトの名無しさん
2015/10/08(木) 23:35:33.54ID:Xn3MaZ8G0097デフォルトの名無しさん
2015/10/09(金) 00:15:53.61ID:oggkbSfr難しいですか?
0098デフォルトの名無しさん
2015/10/09(金) 05:03:09.47ID:DnhlxVQiぐぐれよ
http://www.atmarkit.co.jp/ait/articles/1501/27/news140.html
0099デフォルトの名無しさん
2015/10/09(金) 10:27:53.18ID:oggkbSfr0100デフォルトの名無しさん
2015/10/09(金) 11:13:26.38ID:oOXSiJnlこんなところで釣りをするな
死ね
0101デフォルトの名無しさん
2015/10/10(土) 13:55:22.44ID:PcQrHOFVRectangleだと始点より右下にしかドラッグ出来ません
全方向にドラッグ出来るようにしたいのですがどうすればいいのでしょうか?
ちなみに今のコードは
g.DrawRectangle(Pens.Black, startPt.X, startPt.Y, endPt.X - startPt.X, endPt.Y - startPt.Y);
で startPtはMouseDown時 endPtはMouseMove時のマウスポインタの座標です
0102デフォルトの名無しさん
2015/10/10(土) 14:02:04.52ID:xPCYj4vK0103デフォルトの名無しさん
2015/10/10(土) 14:26:32.90ID:S6gJKsnz0104デフォルトの名無しさん
2015/10/10(土) 14:43:16.81ID:PcQrHOFV出来ましたスパルタ先生!
まだ初心者なのでminとmaxが何か分からなかったんですがMathクラスだったんですね
ありがとうございました!
0105デフォルトの名無しさん
2015/10/11(日) 17:20:59.98ID:ZCWGzTkV依存関係プロパティにすれば変わるのはわかっているのですが、煩雑なのでできれば避けたいと思っています
通常のCLRオブジェクトでは変わらず
INotifyPropertyChangedだと、オブジェクトそのものを入れ替えてしまうと変更を通知するタイミングがなくてうまくいかないような気がします
うまい方法はないでしょうか
0106デフォルトの名無しさん
2015/10/11(日) 18:39:25.15ID:o6WYp8Zd0107デフォルトの名無しさん
2015/10/11(日) 19:03:36.29ID:ZCWGzTkVプロパティの値が変わってないのでどう通知すればいいのかもわからないのですけれども
0108デフォルトの名無しさん
2015/10/11(日) 19:52:52.41ID:ZCWGzTkVただのCLRオブジェクトを入れればきちんと反映されました
自作クラスをDependencyPropertyにしてUserControlとバインドさせて
その自作クラスで普通のCLRオブジェクトのプロパティをUserControlの中にあるコントロールとバインドさせたら
入れ替えても反映しなかったということのようです
0109デフォルトの名無しさん
2015/10/11(日) 19:55:53.79ID:KbfkRHMwが有った時に、
array.Find(x => ...
array.Where(x => ...
などをやる場合に、探索を開始するindexを指定するようなことは出来ませんか?
100番目以降の要素から探索するなど。
0110デフォルトの名無しさん
2015/10/11(日) 19:58:48.31ID:EnuaFgocSkip(99)
0111デフォルトの名無しさん
2015/10/11(日) 20:02:59.11ID:ZCWGzTkV説明できた気がしないので一応テストコードの一部を貼っておきます
DependencyPropertyをやめてただのCLRオブジェクトにすると反映されるようになります
0112デフォルトの名無しさん
2015/10/11(日) 20:08:39.48ID:ZCWGzTkVPropertyMetadataの初期値はstaticなので使いまわされるんですね
お騒がせしました
0113デフォルトの名無しさん
2015/10/11(日) 20:40:49.95ID:ijISB/Tc0114デフォルトの名無しさん
2015/10/11(日) 21:24:46.54ID:lDigt0qz0115デフォルトの名無しさん
2015/10/11(日) 21:29:23.08ID:ijISB/TcXElement document = XElement.Load("sample.xml");
// ゲーム中のユニット情報をXMLの各要素へ書き込み
var query = (from p in document.Elements("Status")
select ★
query.Attribute("UnitID").Value = gameManager.unitStateList[i].unitID.ToString();
0116デフォルトの名無しさん
2015/10/11(日) 21:32:27.27ID:ijISB/Tcvar query = (from p in document.Elements("Status")
select ★
query★
すみません途中書き込みしてしまいました
しかもsageませんでしたすみません
LinkToXMLでXML操作を書きたいです
「Status要素内」の「ID」の値を「更新」したい、というのがやりたい事ですが
★の部分はどう書けばいいでしょうか?
0117デフォルトの名無しさん
2015/10/11(日) 21:35:12.30ID:ijISB/Tcやりたい事はStatus要素内にある「全ての」要素について任意の値で更新を行いたい
というものです
多分、一つしか要素がなく、それを更新するのであればFirst()で取って
Attribute(要素名).Valueで更新できると思うのですが、全ての要素の場合はどう書けばいいのかが分かりません
0118デフォルトの名無しさん
2015/10/11(日) 21:57:00.89ID:lDigt0qz{
status.ID = ...
status.Hoge = ...
}
0119デフォルトの名無しさん
2015/10/11(日) 22:30:24.51ID:o6WYp8Zd0120デフォルトの名無しさん
2015/10/11(日) 23:23:06.77ID:ijISB/Tcありがとうございます。
参考にしてやりたい事自体はできました。
XElement document = XElement.Load("sample.xml");
IEnumerable<XElement> de =
from el in document.Descendants("Status")
select el;
foreach (XElement xmlDocument in de)
{
xmlDocument.Element("id").Value = sStar.id.ToString();
xmlDocument.Element("name").Value = sStar.name.ToString();
xmlDocument.Element("class").Value = sStar.class.ToString();
xmlDocument.Element("setting").Value = sStar.seting.ToString();
}
document.Save("sample.xml");
ただ正直、全然理解できていませんが(何でforeach内のこの処理がdocumentに反映するの?とか)
0121デフォルトの名無しさん
2015/10/11(日) 23:37:17.15ID:o6WYp8Zdclass Hoge { public string Value { get; set; } }
foreach (Hoge hoge in list) {
hoge.Value = ...;
}
なんだからlistに含まれる各hogeのValue値が更新されるのは当然
XElement型のxmlDocumentとかやめてくれよ…
0122デフォルトの名無しさん
2015/10/11(日) 23:41:50.91ID:ijISB/Tcあーなるほど、意味が分かりました
>XElement型のxmlDocumentとかやめてくれよ…
ちなみにこれはなぜでしょうか?
0123デフォルトの名無しさん
2015/10/11(日) 23:52:55.34ID:o6WYp8ZdXDocumentやXmlDocument型が存在する
0124デフォルトの名無しさん
2015/10/11(日) 23:59:38.42ID:ijISB/Tcなるほど、言われてみれば確かに
何度もありがとうございました
0125デフォルトの名無しさん
2015/10/12(月) 07:16:36.14ID:oCa7NkmOありがとうございました。
array.Skip(99) .Find(x => ...
とやると、100番目以降の要素の部分配列が作成されるのは分かったのですが、
その分、処理が遅くなるなどの心配は有りませんか?
0126デフォルトの名無しさん
2015/10/12(月) 07:21:01.92ID:CF5nq9ai>100番目以降の要素の部分配列が作成される
されない
ラッパーのイテレータが作られるだけ
0127デフォルトの名無しさん
2015/10/12(月) 07:27:25.83ID:xL7Yt/Nd本題とは関係ないけど、List<T>型にarrayとかつける馬鹿が目の前にいたらしばき倒してると思う
0128デフォルトの名無しさん
2015/10/12(月) 07:53:05.78ID:oCa7NkmOありがとうございました。
もう一つ教えてください。
int[] array = new int[] { 1, 2, 3 };
foreach (var i in array)
{
i = 100;
}
iはforeach繰り返し変数なので割り当てられない
というエラーが出るのですが、どうすれば良いでしょうか?
0129デフォルトの名無しさん
2015/10/12(月) 07:57:11.52ID:CF5nq9ai普通にループ
っていうかパフォーマンスクリティカルなところでない限りは配列をインプレースで更新したりしないで新しく作っちゃうのが今風
0130デフォルトの名無しさん
2015/10/12(月) 08:13:56.48ID:oCa7NkmOということはクリティカルな場面ではforeachの中で配列を更新できますか?
0131デフォルトの名無しさん
2015/10/12(月) 09:45:46.22ID:4edlKvTHなんで?
型で正体分かるでしょ。
その為の静的言語だし。
名前が適切じゃなきゃリファクタリングすればいいだけだし、そんなことぐらいにしか突っ込めないお前の方が馬鹿だと思う
0132デフォルトの名無しさん
2015/10/12(月) 09:47:15.78ID:L/1UOsEKエンコーダ、デコーダ共に。
C++のsourceなら落ちてるけど、ポインタとかシフト演算使いまくりで移植しにくい。
誰かたすけて
0133デフォルトの名無しさん
2015/10/12(月) 10:05:29.20ID:bZxqtO6M> 名前が適切じゃなきゃ
そこに突っ込んでるだけだろ
いちいちこまけーこと言うなよ
って言うならわかるけど、問題ないだろって開き直るのもどうかと思う
0134デフォルトの名無しさん
2015/10/12(月) 10:11:31.09ID:AiKl9MOi生徒「やってなきゃやればいいだけ。そんなことぐらいにしか突っ込めないお前は馬鹿」
0135デフォルトの名無しさん
2015/10/12(月) 10:44:36.42ID:FazCyQUV「見りゃわかるんだから好きにさせろ」
結論:シーア派とスンニ派の戦いに日本は参加すべきじゃない
0136デフォルトの名無しさん
2015/10/12(月) 10:51:02.89ID:L/1UOsEK0137デフォルトの名無しさん
2015/10/12(月) 10:55:27.76ID:4edlKvTH構造が違うだけで言葉自体の意味はさほど変わらない。
そして大半はiteratorでアクセスするし、インデックスのアクセスも同じ。
どこに問題があるのか教えて欲しい。
0138デフォルトの名無しさん
2015/10/12(月) 11:00:20.66ID:ntYAJ4A2両方に命令してるからな
0139デフォルトの名無しさん
2015/10/12(月) 11:12:27.33ID:UFM1lTS3これでなんで怒ってるのかわからん。
C#のList<T>は普通の配列みたいなやつだよな
LinkedListと勘違いしてるの?
0140デフォルトの名無しさん
2015/10/12(月) 11:45:17.20ID:5cnLZ8t5うぜえんだよボケナス
0141デフォルトの名無しさん
2015/10/12(月) 11:47:29.04ID:4edlKvTHまぁできないと思うよ。問題ないもん。
0142デフォルトの名無しさん
2015/10/12(月) 11:52:34.15ID:oVmZU7gXlinked listの意味で使われarray(array list)とlist(linked list)という対比で用いられることが歴史的に多かったから発狂したんだろう。
連想配列の意味でハッシュが用いられるようなもの。
.NET Frameworkはそれを正しい意味の名前に直したんだから問題はない。
0143デフォルトの名無しさん
2015/10/12(月) 13:10:29.56ID:Tj8wl52Cできません
>>129が言ってるのは
普通は
int[] array = new int[] { 1, 2, 3 };
for( var i = 0; i< array.Length; i++ )
{
array[i] = 100;
}
みたいにやれ。
パフォーマンスとメモリが気にならないなら
array = new int[]{ 100, 100, 100 };
みたいんでいいやん ということじゃね
0144デフォルトの名無しさん
2015/10/12(月) 13:37:05.60ID:cGJWI2K10145デフォルトの名無しさん
2015/10/12(月) 13:49:06.51ID:oCa7NkmOありがとうございました。
0146デフォルトの名無しさん
2015/10/12(月) 15:00:36.92ID:4P8sYT2XConsole.WriteLine(i);
}
0147デフォルトの名無しさん
2015/10/12(月) 15:03:51.40ID:4P8sYT2Xうえのarrayとかlistとか言ってるの読みながら間違えた
ToListで
0148デフォルトの名無しさん
2015/10/12(月) 15:39:30.41ID:FazCyQUV0149デフォルトの名無しさん
2015/10/12(月) 15:49:02.21ID:E/TV++i+一回目はキャンセルできても2回目はなぜかデッドロックしてしまいます;;
以下にソースを張ります。
CancellationTokenSource tokenSource = new CancellationTokenSource();
private void button1_Click(object sender, EventArgs e){
var task1 = Task.Factory.StartNew(() =>{
var task2 = Task.Factory.StartNew(() =>{
tokenSource.Token.ThrowIfCancellationRequested();
for (int i = 0; i <=300000000; i++){
if (tokenSource.IsCancellationRequested){
return 0;
}
}
return 0;
});
if (task2.Result == 0){
task2.Dispose();
}
}, tokenSource.Token);
}
0150デフォルトの名無しさん
2015/10/12(月) 15:49:04.48ID:IrWwZ6fO一つのクラスにメソッド2つを用意すればいいだけなのに
0151デフォルトの名無しさん
2015/10/12(月) 15:51:43.51ID:wjSQdsNO0152デフォルトの名無しさん
2015/10/12(月) 16:10:18.51ID:DarJ/ebZclass Hoge { public static Hoge<T> Create<T>(T value) { ... } }
class Hoge<T> { ... }
var hoge = Hoge.Create(...);
0153デフォルトの名無しさん
2015/10/12(月) 16:37:22.39ID:S0ggbD4hそのコードにデッドロックするところなんて無いと思うけど。
CancellationTokenSourceは一回キャンセル操作したら再使用できないの分かってる?
0154デフォルトの名無しさん
2015/10/12(月) 17:08:42.71ID:t3lNWbaJvoid Method<T,U>(T hoge) where T : Hoge<U>{}
みたいなメソッドだと、Uのせいで型推論が機能しなくなるので、
Hoge<T> : Hogeという形を作っておくと
void Method<T>(T hoge) where T : Hoge{}にできて型推論が効くということだと思う
0155デフォルトの名無しさん
2015/10/12(月) 17:29:26.78ID:IrWwZ6fOILSpyで見るとHogeクラスとHoge<T>クラスのどちらも
HogeBaseを継承していて
HogeBaseのメソッドは引数付きなんです
そしてHogeクラスのメソッドはbaseに対して
nullを渡しています
HogeBaseをわざわざ2つのクラスに分割する意味がわかりません
HogeBaseをそのまま使わせるようにすればいいじゃないですか!
って思うんですけど、説明された型推論の関係なんでしょうか?
0156デフォルトの名無しさん
2015/10/12(月) 17:35:54.46ID:IrWwZ6fOnew Hoge(Action);
new Hoge(Action<T>);
という感じにできたほうが楽じゃありませんか?
それを
new Hoge(Action);
new Hoge<T>(Action<T);
という風に強制させるのはなぜなんでしょう
0157デフォルトの名無しさん
2015/10/12(月) 18:00:28.51ID:t3lNWbaJそれは多分型推論は関係ないと思うけど、聞いた感じだと
Hoge<T>{ T obj; }みたいなメンバ変数があり、それをHogeBaseに渡しているけど
Hogeの場合はそれがないのでnullを渡してるっていうような
まあ筋の通った話に聞こえるなあ
HogeBaseだとTで型を決められないからキャストとかが不便で
Hogeがないといちいちnullを入れてやらなきゃいけなくなって不便みたいなことなんじゃないの
0158デフォルトの名無しさん
2015/10/12(月) 18:41:03.54ID:E/TV++i+CancellationTokenSourceが一回しか使えないのは
知りませんでした。
再起は出来ないんでしょうか?
デッドロックですが使い方を間違えてまして正しくは
一度キャンセルをするとTaskが動かなくなるような
感じです。resultで実際sourceにはokと出るようにしてますがなにも反応がなくなりました。
ボタン復帰もしません
0159デフォルトの名無しさん
2015/10/12(月) 19:08:20.89ID:wjSQdsNOなんでTaskの中でTask作ってんの?
継続タスクにしたいなら、ContinueWithでつなげれば良いだろう。
あと、そのケースなら Task.Factory.StartNewじゃなくて Task.Runを使ったほうがすっきりするだろう。
ちなみにTaskのDispose()は、無理に呼ぶ必要はない。むしろ無闇に呼び出したらタイミングによっては、厄介なことになる。
>>158
CancellationTokenSourceは、一度限り、再度使いたいならCancellationTokenSourceを作り直すしかない。
キャンセルされてたら、tokenSource.Token.ThrowIfCancellationRequested()が例外を吐いて強制終了するだけなんで
ボタンが復帰しないのは当然のこと。
0160デフォルトの名無しさん
2015/10/12(月) 19:27:19.47ID:E/TV++i+ありがとうございます。
あ、継続タスクでも同じ動作をしますか
すいませんうっかりしていました。
TaskRunは使いたいのですが環境の問題で駄目でした。
キャンセルの方はならパブリックにするのではなく
プライベートにしてやってみてるのですが今度はキャンセルが出来なくなりました。。。
Taskキャンセルが難しいです
0161デフォルトの名無しさん
2015/10/12(月) 19:51:26.84ID:wjSQdsNOprivate CancellationTokenSource cancelSource;
private void button1_Click( object sender , EventArgs e ) {
if( this.cancelSource != null )
this.cancelSource.Cancel(); // まだキャンセルされてなければキャンセル要求
this.button1.Enabled = false;
this.cancelSource = new CancellationTokenSource();
var token = this.cancelSource.Token;
Task.Factory.StartNew( () =>{
for( int i = 0; i < 100000; i++ ){
token.ThrowIfCancellationRequested();
Thread.Sleep( 100 );
}
} , token )
.ContinueWith( task => {
// 継続タスク(UIスレッドに切り替わって実行される)
// キャンセルされようとも正常に完了しようとも、例外が発生しても実行される。
this.button1.Enabled = true;
} , TaskScheduler.FromCurrentSynchronizationContext() );
}
private void button2_Click( object sender , EventArgs e ) {
if( this.cancelSource != null ) {
this.cancelSource.Cancel(); // キャンセル要求
this.cancelSource = null;
}
}
0162デフォルトの名無しさん
2015/10/12(月) 20:15:07.87ID:E/TV++i+ありがとうございます。
参考例は非常に助かります。
早速やって見ます。
0163デフォルトの名無しさん
2015/10/13(火) 01:05:59.89ID:41s2HnEDどうやらCancellationTokenSourceの扱いをミスっていたみたいで
>>149の方の仰るとおりあのやり方ではブロック内で再生成してないので
一回しか扱えずこれで詰まっていたようです。
今回の参考例非常に助かり無事に期待した動きをしています。
ありがとうございました。
0164デフォルトの名無しさん
2015/10/13(火) 04:02:33.87ID:P4Y/UxqF事前にそのurlに合わせてエンコーディングを指定すると上手く行くのですが、
UTF-8を指定してSJISのヘージを読むと当然文字化けしてしまいます。
読み込むページのエンコーディングを自動的に認識するなどの機能はありませんか?
0165デフォルトの名無しさん
2015/10/13(火) 04:44:41.46ID:7dOTeKt20166デフォルトの名無しさん
2015/10/13(火) 05:03:23.35ID:P4Y/UxqFじゃあどうすれば任意のurlを文字化けせずに読み込めますか?
0167デフォルトの名無しさん
2015/10/13(火) 06:43:34.47ID:YzZ6qWCc自分でエンコーディングを推定してStringに変換するに決まってんだろ
言わせんなよ恥ずかしい
0168デフォルトの名無しさん
2015/10/13(火) 08:45:24.81ID:xr5l46tc0169デフォルトの名無しさん
2015/10/13(火) 09:06:53.64ID:P4Y/UxqF確かにこの方法で出来そうなのですが、URLによっては
リモート サーバーがエラーを返しました: (500) 内部サーバー エラーです
Status ProtocolError
と出る場合が有りますが。
0170デフォルトの名無しさん
2015/10/13(火) 09:17:24.10ID:IPzu3dLL決まった値でいいならブラウザのデバッガで通信を監視してその通りにリクエスト送ればいいけど、
セッションが必要ならRubyのMechanizeみたいなの使わないとすぐに動かなくなる
非常に面倒だから本当にそのページが重要なのでない限りは諦めた方がいい
0171デフォルトの名無しさん
2015/10/13(火) 10:52:29.13ID:P4Y/UxqF情報ありがとうございました。
RubyのMechanizeというのを少し調べてみたのですが、C#でこういうのは
ありませんか?
0172デフォルトの名無しさん
2015/10/13(火) 11:18:31.92ID:IPzu3dLL0173デフォルトの名無しさん
2015/10/13(火) 12:02:46.15ID:7dOTeKt2あとは、一旦、ASCIIで読み込んで、HTMLの<META>タグ判定するぐらいか。
0174デフォルトの名無しさん
2015/10/13(火) 19:36:16.73ID:bwylg/oX1.オブジェクト指向の基礎を学ぶ(参考書の選択肢はJAVAのが多かったのでJAVAを選択)
2.(今のところWEBがメインなので)HTML,CSS,javascriptの基礎
3.HTTPやTCP/IPの基礎
4.C#3.0以降の技術(LINQ等)
5.デザインパターンを一通り網羅
6.リファクタリングの手法を習得
7.CODE COMPLETE等を読んで基礎固め
8.ASP.NET MVCの基礎、MVC等のレイアー層の理解
今のところこんな感じで進めてるけど
まだまだ足りない所ばかりで成長遅い。
どこかでC言語の勉強もしなきゃいけないと思ってるし...
0175デフォルトの名無しさん
2015/10/13(火) 19:45:39.68ID:xI0jh4Ci具体的にどんな仕事をして誰に一人前と言われたいのか
SIerでドカタやるだけならそんだけできたら一人前どころかエースだ
0176デフォルトの名無しさん
2015/10/13(火) 19:54:30.96ID:7dOTeKt2いろいろ言いたいことはあるが、C#ならサイトなら未確認飛行の人のサイトをお勧めする。
ArrayListとか使ってる入門サイトは、ゴミ以下だ。何の役にも立たないから気をつけろ。
非同期処理でThread(生スレッド)使ってる解説もゴミ以下だから、窓から投げ捨てよう。
C#とJavaと同じとかいう奴に出会したら、にわかなので軽くスルーしよう。
c#使いが覚えるべきことは、
拡張メソッドとIEnumerable<T>の関係性だろう。
こいつを理解できれば、LINQは、理解できたもの同然。
INotifyPropertyChanged
WPFなどのMVVMを理解する上で欠かせない。
Taskとasync , await
非同期関係は、だいたい、これで間に合う。
あと、余裕ができれば、Rx周りに手を出しても良いだろう。
0177デフォルトの名無しさん
2015/10/13(火) 20:11:30.28ID:YzZ6qWCc0178デフォルトの名無しさん
2015/10/13(火) 20:16:29.39ID:P4Y/UxqF動作になると思うのですが、文字列、配列、構造体、クラスなど
受け渡しする時にrefを使うと効率良くなって動作が速くなりますか?
0179デフォルトの名無しさん
2015/10/13(火) 20:34:16.68ID:Jlc+RBffそういえばゴールはあまり明確にしていませんでした。
とりあえず目標?は
・新しいシステムを作るときに、良い設計手法、技術を用いてそれを形にできるスキルを身につけたい
・別の会社にいっても、通用するような基礎を身につける
ですね。正直今のSIer企業には、ずっといたくないと考えているので
転職前に早くスキルを身につけたいところです。
>>177
アドバイスどうもです。
LINQ周りの考え方については結構調べました。
INotifyPropertyChangedや非同期関連は、まだ浅いので詰めて行きたいです。
Rxまで早くたどり着きたい...
0180デフォルトの名無しさん
2015/10/13(火) 21:32:56.02ID:4DY03Csk状況次第だ
しかしそのような質問が出てくる時点で君には時期尚早と言える
0181デフォルトの名無しさん
2015/10/13(火) 21:37:37.13ID:IPzu3dLL個人的には関数型言語覚えるのがお勧めだな
実務で使わないとしても、プログラミングセンスを磨くには最適
細かい技術なんて基礎さえできてればその都度ググればいいこと
0182デフォルトの名無しさん
2015/10/13(火) 21:53:19.65ID:3EVIu19yC#においては「参照型」と「値型」の区別が重要だよ
参照型はclass、値型はstructやプリミティブ型だよ
0183デフォルトの名無しさん
2015/10/13(火) 22:14:15.51ID:JgCmGigF0184デフォルトの名無しさん
2015/10/13(火) 22:20:08.70ID:P4Y/UxqFそれは知っているのですが、
そういう前提で、とりあえずrefを入れまくっておけば
速くなることはあっても遅く成る事は無いですか?
0185デフォルトの名無しさん
2015/10/13(火) 22:24:23.58ID:IPzu3dLL参照型は遅くなる
元々ハンドルを渡してるだけなのにその上余計な間接アクセスが入るから
0186デフォルトの名無しさん
2015/10/13(火) 22:47:11.18ID:7dOTeKt216バイト以上の構造体(値型)であれば、コピーコストを抑えることができるので若干、速くなる。
class A {
string hoge;
void Run() => Set( ref hoge );
void Set( ref string n ) => n = "aaa";
}
こうすれば、Setメソッドで hogeが書き換わるようになるだけ。
これを利用したのがLazyInitializer.EnsureInitializedあたりの遅延初期化あたり。
また、仮に速度向上が見込まれるとして何でもかんでもrefを使うと可読性が悪くなるだけでなく、余計なバグの温床になるだろう。
0187デフォルトの名無しさん
2015/10/13(火) 23:33:34.52ID:wNVuw2e31しかやってないけど年収一千万超えてるわ俺
0188デフォルトの名無しさん
2015/10/14(水) 00:11:28.33ID:9EHqXlxG0189デフォルトの名無しさん
2015/10/14(水) 00:15:52.35ID:6bQwcZBRそれが普通。
少なくとも好き好んで使うような物じゃないでしょ
0190デフォルトの名無しさん
2015/10/14(水) 01:11:41.08ID:3R4nuN13outは使うことがあるかも
複数値リターンがあればいらないんだけどね
0191デフォルトの名無しさん
2015/10/14(水) 01:41:54.81ID:KX7liTZS0192デフォルトの名無しさん
2015/10/14(水) 02:17:16.60ID:zAeiUrE80193デフォルトの名無しさん
2015/10/14(水) 09:46:15.40ID:Kzgl2aXhSystem.Threading.LazyInitializer.EnsureInitialized( ref x );みたいなやつ
0194デフォルトの名無しさん
2015/10/14(水) 10:43:03.02ID:/REmo4T1周りに詳しい人いないから誰にも聞けないわ
0195デフォルトの名無しさん
2015/10/14(水) 10:59:37.46ID:H7Zj+QeL0196デフォルトの名無しさん
2015/10/14(水) 13:27:10.88ID:C7hQw/KG0197デフォルトの名無しさん
2015/10/14(水) 16:31:12.31ID:aOACpiFqhttp://stackoverflow.com/questions/1315621/implementing-inotifypropertychanged-does-a-better-way-exist
0198デフォルトの名無しさん
2015/10/15(木) 18:28:08.01ID:2u28QwcFdo{
int pos = line.IndexOfAny(new char[] { '●', '■', '▲' }, pos);
if(pos==-1)
break;
pos++
while(true);
こういう探索をする場合、上例のように
new char[] { '●', '■', '▲' }
をループの中に入れると毎回newされて効率悪くなったりしますか?
事前に
const array = new char[] { '●', '■', '▲' };
として、ループの中では
int pos = line.IndexOfAny(array, pos);
とすべきですか?
0199デフォルトの名無しさん
2015/10/15(木) 18:37:34.62ID:fomBTPP1だけど全体の処理から考えると誤差以下よ
0200デフォルトの名無しさん
2015/10/15(木) 22:37:02.52ID:2u28QwcFありがとうございました
0201デフォルトの名無しさん
2015/10/17(土) 08:47:07.62ID:b8m6XFK10202デフォルトの名無しさん
2015/10/17(土) 08:54:54.81ID:FN3G7dO/どうしてもフィールドを直接弄りたいなら StructLayout(LayoutKind.Explicit) + FieldOffset でunion相当が実現可能
0203デフォルトの名無しさん
2015/10/17(土) 12:06:28.13ID:HFus6TsSって話じゃないのか?
意味不明
0204デフォルトの名無しさん
2015/10/17(土) 12:08:03.62ID:TjssbBGsそうだとしたら、でもそこが値型のメリットでもあるわけで、まあちゃんと理解して使えとしか。
0205デフォルトの名無しさん
2015/10/17(土) 12:16:22.10ID:b8m6XFK1そういう事
0206デフォルトの名無しさん
2015/10/17(土) 12:21:07.89ID:TjssbBGs参照型でRectを作った場合でも、まともなセンスの人なら>>201みたいなことができないように講じる
(Rectをイミュータブルにする)わけで、同じなんだけどね。
0207デフォルトの名無しさん
2015/10/17(土) 12:44:09.96ID:b8m6XFK10208デフォルトの名無しさん
2015/10/17(土) 15:11:26.94ID:y+IPLvAOいったいどうしたらいいんですか?
(´・ω・`)
0209デフォルトの名無しさん
2015/10/17(土) 15:21:06.30ID:c8KbfCFXそれは中二病の症状です。
20歳を超えて発症した場合は恐らく一生治りません。
定めだと思って諦めて一生青春しててください。
0210デフォルトの名無しさん
2015/10/17(土) 16:01:56.58ID:HUgpKArY0211デフォルトの名無しさん
2015/10/17(土) 16:32:12.70ID:YVKz2Gue嘘
短寿命オブジェクト用のGen0GCはクソ速いから、
クラスをnewするならするですぐに使い捨てるのがよい
0212デフォルトの名無しさん
2015/10/17(土) 16:54:05.33ID:ceUp4SbXあ、マジか…
60FPSなら16msで一周しないといけないけどGCは30msくらい掛かるって書いてあったから心配してた
0213デフォルトの名無しさん
2015/10/17(土) 20:48:01.48ID:lEhwHPlHWindows崩壊とか勘弁ですよ
0214デフォルトの名無しさん
2015/10/17(土) 21:30:39.49ID:Qv9BWxTIアップルも新しいものを生み出せずに飽きられたら将来はどうなるかわからん
0215デフォルトの名無しさん
2015/10/17(土) 22:12:12.95ID:1b1MshO00216デフォルトの名無しさん
2015/10/17(土) 22:13:36.87ID:ixXAzgg3狙い撃ちってどういう意味?
0217デフォルトの名無しさん
2015/10/17(土) 22:14:17.57ID:lZc14wWH詳し区
0218デフォルトの名無しさん
2015/10/17(土) 22:30:15.39ID:1b1MshO0いや、単に.NET4.0〜4.5.1が来年の1月12日にサポート切れて4.5.2以外サポート対象外になるだけの話なんだわ
http://www.atmarkit.co.jp/ait/articles/1501/23/news031.html
.NET Framework 3.5 SP1および3.5.1
.NET Framework 4.5.2
3.5.1以前は下位バージョンが内包されているからいいんだが、4.0〜4.5.1は4.5.2入れろ
必要ならば動作検証し直してねとMSが明言しているから扱い面倒そうだなと
0219デフォルトの名無しさん
2015/10/17(土) 22:37:10.95ID:FN3G7dO/.NETのマイナーバージョン間非互換ってインストールパスに依存してる糞アプリがあるかもしれないとかそんなレベルだし
0220デフォルトの名無しさん
2015/10/17(土) 22:42:15.32ID:ixXAzgg3現時点で4.6出ているけど4.5.2はずっとサポートされると思っていいんだろうか
それとも今後新バージョンが出るたびに動作検証し直さなければならない?
0221デフォルトの名無しさん
2015/10/17(土) 22:43:10.59ID:S84Ssc/e0222デフォルトの名無しさん
2015/10/17(土) 22:49:06.59ID:/7+5znpF仮に4.5.1がサポートされてたらWin10に上げても検証しなくていいのか?
どう考えても.NETのバージョンなんかよりWin10へ上げること自体の方が遥かに問題になる可能性が高いだろ
0223デフォルトの名無しさん
2015/10/17(土) 23:23:15.70ID:ixXAzgg3Win10に上げるのは自己責任じゃねーの
4.5.2には上げざるを得ないから対応しろと言われかねない
0224デフォルトの名無しさん
2015/10/18(日) 01:04:40.12ID:/DhocndZ0225デフォルトの名無しさん
2015/10/18(日) 12:54:14.13ID:i95LMF8HC#使いはみんなアホなのか
0226デフォルトの名無しさん
2015/10/18(日) 13:00:46.03ID:ivrEFHM8✕C#使いはアホ
○日本のITはアホ
0227デフォルトの名無しさん
2015/10/18(日) 13:26:26.09ID:rT2sf8QY0228デフォルトの名無しさん
2015/10/18(日) 16:09:43.90ID:/DhocndZマイクロソフト工作員暴れすぎだろ、見境なくなってる
末期症状だな
0229デフォルトの名無しさん
2015/10/18(日) 16:13:20.14ID:/DhocndZこまごましたクラスで名前空間汚れる
0230デフォルトの名無しさん
2015/10/18(日) 16:36:13.19ID:tIhTJhT+重症の2ch脳だな。酷い馬鹿だ。
0231デフォルトの名無しさん
2015/10/18(日) 17:53:35.54ID:EteQ/5LB0232デフォルトの名無しさん
2015/10/18(日) 17:54:02.78ID:rT2sf8QYとか馬鹿にされることもなかったのにな
アンダースは細かい使い勝手を改善するような変更に対してすごく保守的だった
拡張メソッドもstaticクラスでしか作れないみたいな嫌がらせを受けたままだし
0233デフォルトの名無しさん
2015/10/18(日) 17:56:00.48ID:hcyPsAl40234デフォルトの名無しさん
2015/10/18(日) 18:22:39.24ID:rT2sf8QYデータクラスと別に手続きクラスを用意するのは自然になっていくと思う
ただ手続きを探すためには圧倒的に.を打ってインテリセンスに名前が出たほうが便利だから
拡張メソッドは第一線で使われるものになっていくだろう
それで拡張メソッドをstaticクラスにまとめること自体はいいんだが
問題はstaticクラスの内部で型が作れないことなんだよなあ
多値を返すためにoutみたいな奇道を使わない場合structを定義しないとどうしようもないが
トップレベルに書くと名前空間が汚れすぎる
まあそれもタプルが来れば解決か
0235デフォルトの名無しさん
2015/10/18(日) 21:06:11.60ID:O3txSH0Mほとんどはネットでググれば出てくるし
唯一金出して買うって書籍はせいぜい洋書の翻訳版くらいだよな?
0236デフォルトの名無しさん
2015/10/18(日) 21:10:59.06ID:Fyu9IAr8自動アップデートが実装されない限り技術書籍は買う気にならないが…
0237デフォルトの名無しさん
2015/10/18(日) 21:11:18.08ID:S+d/GOeW大抵の技術書の著者って技術評価みたいなことしかしてない奴ばっかりだから
ほんとにネットでググったtipsが羅列されてるだけみたいなのが多い
0238デフォルトの名無しさん
2015/10/18(日) 21:13:06.08ID:1K54QMcp独学や素人だと結構本が理解の入り口になると思うよ
ただ、記述ミスが結構あって逆に理解に苦しむことがあったり、
著者が理系脳で、わからない人にわかるように表現されてない
わかるひとが読めばわかるが、わからない人が読むとさっぱり・・・
悲しいかな、購入者はわからない人がほとんどなのだけどね
で、ネットの情報や複数の本で補完せざるを得ない
そういう意味ではネットでいいというのもうなずけるけど・・・
0239デフォルトの名無しさん
2015/10/18(日) 21:26:39.43ID:O3txSH0M初心者だってググれば知りたい事出てくるんだから、書籍を買う意義の在処が無いでしょ
0240デフォルトの名無しさん
2015/10/18(日) 21:41:31.99ID:CUxV7ZEj>著者が理系脳で、わからない人にわかるように表現されてない
>わかるひとが読めばわかるが、わからない人が読むとさっぱり・・・
このへんはネットの情報でもたいして変わらんと思うが。
加えて、ネットだと
・断片的なトピックしか書いてない
・そもそも間違っている
ってのも割合としては多くなるな。
0241デフォルトの名無しさん
2015/10/18(日) 22:47:11.00ID:Fyu9IAr8もしくはぐぐるためのキーワードを知らない
0242デフォルトの名無しさん
2015/10/18(日) 23:12:02.85ID:0PlCKIO2情報が主題に沿ってまとまってる
その情報が編集されて主題にそって提示されている
の2点
つまり編集されていると言う事に意義を感じないなら価値はないな
0243デフォルトの名無しさん
2015/10/18(日) 23:17:11.53ID:ZeZpTvFbASP.NET関係だとネットだけだと断片的過ぎてな
初心者は本を買わざるを得ないだろう
おまけに文法本と違って本の選択肢も少ないという問題もある
0244デフォルトの名無しさん
2015/10/18(日) 23:21:12.01ID:1MrL9p77俺はこの一年でvb、c++、c#、asp.net、js、php、その他全部ネットで習得したよ。一冊も本は買っていない。
0245デフォルトの名無しさん
2015/10/18(日) 23:26:42.33ID:/DhocndZ自分も作っているのはデスクトップアプリオンリーだし
無料のレンタル鯖にC#で組めるcgiとかできたら嬉しいんだけどね(←時代に置いて行かれたおっさんw)
0246デフォルトの名無しさん
2015/10/18(日) 23:30:25.33ID:ZeZpTvFb来年登場予定のASP.NET5はリナックスでもMACでも動くという触れ込み
フレームワークがオープンソースの.NET COREに代わる
これで普及すればいいんだがな
0247デフォルトの名無しさん
2015/10/18(日) 23:40:24.72ID:FU6fHshJMVCの方でいいんなら今でもMonoで動くよ
0248デフォルトの名無しさん
2015/10/18(日) 23:46:53.39ID:1MrL9p77iisもlinuxに移植されるの?
0249デフォルトの名無しさん
2015/10/18(日) 23:47:34.93ID:/DhocndZ軽くperl書くノリくらいで、って感じですw
0250デフォルトの名無しさん
2015/10/18(日) 23:50:52.54ID:ZeZpTvFbiisが移植されることはないでしょ
むしろASP.NET5はwebサーバー依存じゃなくなってるのでアパッチでも何でも動くのが売り
0251デフォルトの名無しさん
2015/10/18(日) 23:55:05.84ID:1MrL9p77iisの設定画面に慣れているがapacheあまり知らないので不安だなあ
0252デフォルトの名無しさん
2015/10/19(月) 00:26:53.06ID:VNgGX25K0253デフォルトの名無しさん
2015/10/19(月) 00:29:12.84ID:kIMtGLET0254デフォルトの名無しさん
2015/10/19(月) 00:48:22.49ID:pvWtLvxK何を言ってるんだこのばかは
0255デフォルトの名無しさん
2015/10/19(月) 00:53:57.97ID:cS+kHoUQ馬鹿はお前
0256デフォルトの名無しさん
2015/10/19(月) 02:29:19.17ID:/AkA90sIただ、SSL関連とか、機能が足りないところがあるので、そこはnginxとかapache(+middleware)と組み合わせて使う必要があるかも。
0257デフォルトの名無しさん
2015/10/19(月) 03:18:42.76ID:D6E0OVv30258デフォルトの名無しさん
2015/10/19(月) 05:27:57.56ID:c9jTiL6V詳しく教えてください
(´・ω・`)
0259デフォルトの名無しさん
2015/10/19(月) 06:15:38.35ID:NjHqWI/sジェネリックメソッドの
引数にインターフェースを入れさせないようにできませんか?
もしくはインターフェースならreturnするような処理を書きたいです
メソッド内で更にTを使ってインスタンスを生成するので
インターフェースだと問題なのです
0260デフォルトの名無しさん
2015/10/19(月) 06:37:27.02ID:E3V4kHKJいやです
>>259
public void Hoge<T>(T t) where T : new()
とか
0261デフォルトの名無しさん
2015/10/19(月) 07:05:12.11ID:NjHqWI/s制約条件というのがあったんですね
ありがとうございます
0262デフォルトの名無しさん
2015/10/19(月) 07:26:11.69ID:v19BRXDYvar t = factory();
のようにデリゲートを渡す手もある
これならインターフェースで問題ないし間接的にコンストラクタに引数渡すこともできる
Func<T>のかわりにLazy<T>でもいいけどやってることは同じ
0263デフォルトの名無しさん
2015/10/19(月) 10:54:18.39ID:NjHqWI/sデザインパターンですよね?そちらの方がいいのかな?
public static IEnumerable<T> Select<T>(string dbFile, string tableName, string ptn) where T:new()
{
using (var connection = GetConnection(dbFile))
{
connection.Open();
try
{
var sql = "select * from " + tableName + " where name like '%" + ptn + "%'";
return connection.Query<T>(sql);
}
catch (Exception e)
{
Console.WriteLine("SelectError={0}",e.Message);
}
return null;
}
}
こんな感じのdllを作っている途中なんですが
0264デフォルトの名無しさん
2015/10/19(月) 10:56:15.66ID:v19BRXDY作る意味なし
0265デフォルトの名無しさん
2015/10/19(月) 11:15:29.47ID:PGvR7XY70266デフォルトの名無しさん
2015/10/19(月) 11:21:13.07ID:kIMtGLET0267デフォルトの名無しさん
2015/10/19(月) 16:42:20.38ID:NjHqWI/sInterfaceだと
return connection.Query<T>(sql);
ここでエラーになるんです
動的に生成されたあらゆるdbのテーブルにアクセスできるような
関数が書きたいんですが難しくて試行錯誤してます
0268デフォルトの名無しさん
2015/10/19(月) 17:04:32.33ID:6CTsRO/G難読化とかしなくてもILは読めないものなんですか?
無対策でいけますか?
0269デフォルトの名無しさん
2015/10/19(月) 17:08:11.74ID:D6E0OVv3うぶんつ行き
マイクロソフトもぅあかん・・・なんやってんだよこいつ等
0270デフォルトの名無しさん
2015/10/19(月) 17:35:49.86ID:h/O11m5h読まれると困るロジックはクラウドにポイしなさい
0271デフォルトの名無しさん
2015/10/19(月) 17:38:41.70ID:bIFzKXU5GraphicsクラスのFromImageメソッドを使ってBitmapオブジェクトを渡すとGraphicsオブジェクトを返してくれるんかぁ
FromImageメソッドってなんでFromImageって名前なんですか?
何か許せんなぁ
(´・ω・`)
0272デフォルトの名無しさん
2015/10/19(月) 17:40:34.47ID:yeB94VZ+風説の流布
MSに訴えられても知らないよ
0273デフォルトの名無しさん
2015/10/19(月) 17:44:09.65ID:6CTsRO/GWhat the...
0274デフォルトの名無しさん
2015/10/19(月) 17:44:59.65ID:bIFzKXU5よっぽど分かりやすいわ
(´・ω・`)
0275デフォルトの名無しさん
2015/10/19(月) 18:35:23.16ID:E3V4kHKJプチコンやってろよ睾丸AA野郎
0276デフォルトの名無しさん
2015/10/19(月) 22:12:15.18ID:ZagPftKb画像の余計な透明削除ツール作ったら画像編集作業が5倍くらい早くなった
0277デフォルトの名無しさん
2015/10/19(月) 22:30:31.92ID:v19BRXDY設計思想でC#と共通する部分が多いからC#使いには馴染みやすいはず
0278デフォルトの名無しさん
2015/10/19(月) 22:41:25.04ID:ZagPftKb3時間あれば自動化ツールくらい作れるし
動型言語は本当に無理
0279デフォルトの名無しさん
2015/10/19(月) 22:55:04.13ID:v19BRXDYさらにそのコマンド実行も自動化しようすればスクリプトが欲しくなる
0280デフォルトの名無しさん
2015/10/20(火) 01:58:38.69ID:FqqyKFc+逆になんて名前をつけるの?
0281デフォルトの名無しさん
2015/10/20(火) 02:03:28.20ID:ihl8OErtImage側のインスタンスメソッドが存在しない点じゃなくてそっちかw
ImageはBitmapだけじゃないのは理解してるんだよね?
0282デフォルトの名無しさん
2015/10/20(火) 03:17:45.27ID:fy+ITDgZ0283デフォルトの名無しさん
2015/10/20(火) 20:37:49.08ID:+C/uSyXL0284デフォルトの名無しさん
2015/10/20(火) 21:27:22.38ID:XSRvNUEe0285デフォルトの名無しさん
2015/10/20(火) 21:31:07.79ID:aserhZ1Uその二つは比較されるものなんですか?
私は後者しか使った事ないんですが、前者は名前だけ知っています
0286デフォルトの名無しさん
2015/10/20(火) 21:35:02.48ID:VizItIQ4ASP.NET MVCって大規模業務アプリケーション向けだぞ?
0287デフォルトの名無しさん
2015/10/20(火) 22:53:52.64ID:n2Rswrrf悪夢しか想像できないな
中規模の「動けばいい」的なトコしか使い道がない
中途半端な存在
0288デフォルトの名無しさん
2015/10/21(水) 00:12:55.70ID:1DhnI/Al0289デフォルトの名無しさん
2015/10/21(水) 00:17:50.65ID:+buqe22Nフレームワーク使わずに素のC#のHttpListenerだろ
0290デフォルトの名無しさん
2015/10/21(水) 02:50:58.77ID:KS4N6B3gキーはプログラム内で保持して固定にするつもりなんだけど、IVはどう扱ったら良い?
�@暗号化する毎にIVを変更して、暗号化したファイルの先頭に書き出す。
�AIVもプログラム内で保持して固定。ファイルには書き出さない。
0291デフォルトの名無しさん
2015/10/21(水) 08:02:33.67ID:J5wjnr6G「レコード」クラスの「○○フラグ」は「キーワード」のグループ毎に1件状態にしたい
そこで考えたのが
「レコード」クラスに「○○フラグの変更時に呼ばれるアクション」を追加
「○○フラグ」プロパティのセッターで上記のアクションを呼ぶ(循環呼び出し排他制御付き)
コレクションするクラス側で「キーワード」のグループ毎に1件状態にするメソッドを実装
コレクションに追加する時に「レコード」のアクションにメソッドを呼ぶラムダ式を代入(※)
これで一応期待する動作になるのですが
「レコード」を破棄する時に(※)で代入したアクションはNULLクリアしないと
コレクションからの参照が残って不味いとかあるのでしょうか?
0292デフォルトの名無しさん
2015/10/21(水) 08:21:14.32ID:zYXo0lV40293デフォルトの名無しさん
2015/10/21(水) 09:06:19.97ID:7McFBYAy0294デフォルトの名無しさん
2015/10/21(水) 11:04:42.43ID:ErXzvicfプログラムがキーを持ってる時点でもうどうでも良くない?
0295デフォルトの名無しさん
2015/10/21(水) 12:31:41.91ID:IzAQ78jc難しく考えすぎ
そんなもんDictionaryにキーワードとフラグのペアを持たせといてレコードクラスのsetterで更新したらええがな
getterもそのDictionaryから値を取得して返すだけ
Dictionaryのインスタンスはデータコンテキスト的なクラスを作ってその中にラップして共有すればいい
0296デフォルトの名無しさん
2015/10/21(水) 15:30:16.81ID:12+gm44t全体の一部であるレコードが
全体を視野に入れてユニークかどうか判別するのは
好ましいとは思わないな
その部分は分離したほうがいいよ
0297デフォルトの名無しさん
2015/10/21(水) 15:40:29.52ID:12+gm44tUserEntityにdbを操作する静的メソッドを用意する
クラス一つだけで済むのでサンプルとしてはわかりやすいけど
0298デフォルトの名無しさん
2015/10/21(水) 16:15:53.93ID:J5wjnr6Gレス有難うございます
最初はレコードクラスに「○○フラグChanged」イベントを作り
コレクションクラスでそれを購読して対応しようかと思ったのですが
アクションで代入したらGCの回収対象になるのかな?
もしそうなら購読解除が要らないので少し楽できるかなぁ的な安易な考えでした
他の実装方法も含めて勉強してみます
重ねて有難うございました
0299デフォルトの名無しさん
2015/10/21(水) 16:26:42.47ID:12+gm44tまず動くもの作って問題が出てから考えればいいのに
CLR使っている以上単純なコンソールアプリですら100MB以上も容量食うんだよ?
その上で数KBのメモリ増減なんて気にすることあるのかって思うわ
0300デフォルトの名無しさん
2015/10/21(水) 16:41:42.12ID:3TuEHh7eなんだ初心者か
0301デフォルトの名無しさん
2015/10/21(水) 17:31:13.67ID:vLvdh1RP例えば、クラスは、ヒープ汚すから構造体で…とかやってると、コピーコストで速度低下、結局見えないところでボクシングしまくってGCに負担掛けるとか
0302デフォルトの名無しさん
2015/10/21(水) 18:58:14.00ID:IzAQ78jc〜Changedみたいなのが出てきたら、本当にそこに拡張性を持たせる必要があるのかどうかよく考えたほうがいい
仕事でやってないと、クラスのインターフェイスといえば.NETのコンポーネントみたいな本当に一般的なものばかり目にするから
ああいうふうに作るものだと誤解しやすいんだろうね
0303デフォルトの名無しさん
2015/10/21(水) 19:19:34.54ID:vLvdh1RP0304デフォルトの名無しさん
2015/10/21(水) 19:34:17.96ID:3TuEHh7e教育的効果として無理からデザパタに従うということもある
どっちがいいか分からんね
0305デフォルトの名無しさん
2015/10/21(水) 19:35:01.65ID:1DhnI/Al↓
Subjectに変更を通知
↓
Subjectが全Subjectに通知
このObserverモデルっておかしいですか?
0306デフォルトの名無しさん
2015/10/21(水) 22:05:26.95ID:17YEFPhWそれ以前にObserverを根本的に誤解している
ObserverパターンではSubjectがイベントソースでObserverがイベントリスナだぞ
逆
0307デフォルトの名無しさん
2015/10/21(水) 23:04:08.68ID:w/HuBnl50308デフォルトの名無しさん
2015/10/22(木) 17:12:48.15ID:YiIFkN4t変数とかメソッドを選択したい時に
Ctrl+Shift+矢印キーで
選択してますか?
(´・ω・`)
0309デフォルトの名無しさん
2015/10/22(木) 17:25:22.18ID:YiIFkN4tPointが使われている定義がズラ〜っと出てきますが
…public static bool operator !=(Point left, Point right) とか見て
『アンタ、何が言いたいん?』とかなりませんか?
(´・ω・`)
0310デフォルトの名無しさん
2015/10/22(木) 17:32:27.87ID:CeSwqlxwあとCtrl+Shift+→ってなんだろ、Ctrl+Jの補完ならよく使う
0311デフォルトの名無しさん
2015/10/22(木) 17:33:20.51ID:CeSwqlxw0312デフォルトの名無しさん
2015/10/22(木) 17:44:46.67ID:YiIFkN4tマウスで選択してるの?
(´・ω・`)
0313デフォルトの名無しさん
2015/10/22(木) 17:49:06.91ID:YiIFkN4tひと息つくたびに無意識にCtrl+Sを押してる自分がいる
(´・ω・`)
0314デフォルトの名無しさん
2015/10/22(木) 18:04:16.53ID:W3MdSzAO0315デフォルトの名無しさん
2015/10/22(木) 18:11:10.89ID:CeSwqlxwどれだったかデフォルトじゃなくなってどうなることかと思ったが
復活してよかった
0316デフォルトの名無しさん
2015/10/22(木) 18:12:22.29ID:YiIFkN4tおやすみー
(´・ω・`) /
0317デフォルトの名無しさん
2015/10/22(木) 19:56:27.34ID:PAakFcEeこれは正しく動くんですが
http://ideone.com/MjPf9j
これは動かない(DataContextのLevelに何を入れてもMinimumの16になってしまう)原因に
心当たりありませんか?
0318デフォルトの名無しさん
2015/10/22(木) 20:51:13.05ID:Rb62oFdH二度と来んなよ死ね
0319デフォルトの名無しさん
2015/10/23(金) 02:59:14.71ID:jTLyTzRn"obj\x86\Release\○○.exe" を "bin\Release\○○.exe" にコピーできませんでした。
1000 ミリ秒以内に ○ 回目の再試行を開始します。別のプロセスで使用されているため、プロセスはファイル 'bin\Release\○○.exe' にアクセスできません。
というエラーが出て10秒程度待たされた末にエラーで起動できず、ということがたまに起こります。
この再試行をさせないようにしたいんですが、探しても設定方法が分からず、そもそも設定できるのかも分かりません…。
(エラーの原因は分かっているので問題ないです)
何か知っている方いたら教えてください。
0320デフォルトの名無しさん
2015/10/23(金) 03:06:18.87ID:ib+lLw74なぜ原因の方を潰そうと思わないんだろう。
0321デフォルトの名無しさん
2015/10/23(金) 04:14:01.91ID:jTLyTzRnすいません。原因はソースじゃないんです…。「デバック無しで開始」→で起動したものを閉じずにまた「デバック無しで開始」するとなります。
以前は再試行せずにすぐエラーが出たのでその状態に戻したいんです。
0322デフォルトの名無しさん
2015/10/23(金) 10:18:06.90ID:OmHxpJmNプロセスが起動してんだからコピーできるわけねえじゃん
起動したものを閉じろよ
0323デフォルトの名無しさん
2015/10/23(金) 13:03:06.16ID:7JhC24+l別プロセスで起動するように設定したらいいよ
0324デフォルトの名無しさん
2015/10/23(金) 16:56:02.41ID:msJBe+Ht0325デフォルトの名無しさん
2015/10/23(金) 19:18:21.29ID:wuEBiUeZデバッグで中断した時に他のスレッドが終了していないと起こるようだ
VS再起動で何とかなる
0326デフォルトの名無しさん
2015/10/23(金) 20:16:38.76ID:IJyMkb2Bあらかじめネットワーク設定のIP設定画面からIPアドレスを追加しておくのではなく、
プログラムだけでIP追加&待ち受けするにはどうすればよいでしょうか?
0327デフォルトの名無しさん
2015/10/23(金) 20:55:00.47ID:1FmkefyVC#は全く関係ないけど
0328デフォルトの名無しさん
2015/10/23(金) 21:01:51.88ID:8ibK1VGyLANのデバイス10個いるけどどうすんの?
0329デフォルトの名無しさん
2015/10/23(金) 21:16:41.70ID:1FmkefyVなんで10枚もいるのよ
0330デフォルトの名無しさん
2015/10/24(土) 00:31:26.01ID:sBU6HpCF0331デフォルトの名無しさん
2015/10/24(土) 03:32:42.96ID:7oDBCbbLP/InvokeでIPHLPAPI(IP Helper API)かな。
0332デフォルトの名無しさん
2015/10/24(土) 11:48:09.25ID:/s9N4mON常識で考えろ
そんなものは作れない
0333デフォルトの名無しさん
2015/10/24(土) 15:35:39.62ID:ucvxMtnw再試行している間はメッセージも出ず、ひたすら待たされるので、「起動に時間掛かってるのかな?」と思ったら、前のプロセスの終了し忘れだったということがあって…。
変な質問で混乱させてすいません。答えてくれてありがとうございました。
0334デフォルトの名無しさん
2015/10/24(土) 17:13:10.08ID:dOGyJCjwそりゃだって、前のプロセス終了待ちするんだから仕方がない。同時起動しない設定にすればいい
0335デフォルトの名無しさん
2015/10/24(土) 19:00:51.29ID:t+kkgTrx0336デフォルトの名無しさん
2015/10/24(土) 22:09:38.29ID:oCqnp8jj1 2 3 4のようにスペースで区切って表示したいです。
しかし、以下のようにやると語尾にごみが入ってしまいますよね?
皆さんはどうやってますか?
var s = "";
foreach(var item in list){
s += item + " ";
}
あと、このようなコードを打ったら0が得られました。
var e = list.GetEnumerator();
WriteLine(e.Current);
リストの一番目は0じゃないはずですが、どういう状態なんでしょうか?
0337デフォルトの名無しさん
2015/10/24(土) 22:12:13.35ID:oCqnp8jj0338デフォルトの名無しさん
2015/10/24(土) 22:22:56.92ID:bQKppvzEString.Join
0339デフォルトの名無しさん
2015/10/24(土) 22:33:06.87ID:fd/dB9hcMSDN読め
https://msdn.microsoft.com/ja-jp/library/5ztkdk88.aspx
後、ソースも
http://referencesource.microsoft.com/#mscorlib/system/collections/generic/list.cs,1140
Currentの初期値はdefault(T)になってる
0340デフォルトの名無しさん
2015/10/24(土) 23:13:30.57ID:oCqnp8jjありがとうございます。.netはなんでもありますね
>>339
default(T)になっているのはなぜですか?
currentが呼び出されてそこからindexの値を取りに行くのは駄目なんでしょうか?
ソースは時間があるときに読みます。
0341デフォルトの名無しさん
2015/10/24(土) 23:22:00.56ID:fd/dB9hc0342デフォルトの名無しさん
2015/10/24(土) 23:37:22.93ID:oCqnp8jjよくわかりません。
MoveNextをするまではプロパティは未定義ですとなっていますが、
実際に値を返していますよね。
そもそも定義・未定義という記述の意味が分かりません。
で、default(T)になっているのはパフォーマンスのためらしいですが、
今内部ソースを読む時間がないし、面倒くさいのでdefault(T)でどうパフォーマンスに影響があるのか伺っている次第です。
0343デフォルトの名無しさん
2015/10/24(土) 23:45:14.81ID:wB/X7nCW0344デフォルトの名無しさん
2015/10/24(土) 23:48:11.15ID:udZsPmmZ難しく考え過ぎじゃないか?
0345デフォルトの名無しさん
2015/10/24(土) 23:58:43.72ID:fd/dB9hcそれだけ
この実装が嫌ならオレオレEnumerator作ればいい
0346デフォルトの名無しさん
2015/10/25(日) 01:57:46.12ID:fsyBfEYm0347デフォルトの名無しさん
2015/10/25(日) 02:17:51.08ID:KpFhvh+Kあまり気にしないことにします。
0348デフォルトの名無しさん
2015/10/25(日) 02:38:41.48ID:c+xpZEB0どこもかしこもマイクロソフト関連は気持ち悪くなった
0349デフォルトの名無しさん
2015/10/25(日) 06:55:51.12ID:UpnA5iMK黄色い自動車に乗ったほうがいい
0350デフォルトの名無しさん
2015/10/25(日) 13:05:53.83ID:XGM/2Enxじゃあ見るなよ
0351デフォルトの名無しさん
2015/10/25(日) 13:35:20.53ID:xV04ZCve0352デフォルトの名無しさん
2015/10/25(日) 16:37:16.14ID:hQyThWO7dbだけはバックアップしてあったので
それを新調したPCで読むことはできますか?
dbを作ったPCじゃないと読めないんでしょうか?
0353デフォルトの名無しさん
2015/10/25(日) 16:50:28.68ID:Q9+fT7GMそもそもバックアップてtそういう時のためにあるようなもんだろ
0354デフォルトの名無しさん
2015/10/25(日) 16:55:40.90ID:c+xpZEB0お前みたいなのが居なくなるだけですげぇスレの空気が良くなるよ
0355デフォルトの名無しさん
2015/10/25(日) 16:58:41.53ID:PVPHq6NE0356デフォルトの名無しさん
2015/10/25(日) 17:52:19.14ID:xV04ZCve何か変な文献でも読んだんですか?
0357デフォルトの名無しさん
2015/10/25(日) 18:02:49.45ID:MN19GUGi0358デフォルトの名無しさん
2015/10/25(日) 21:16:15.50ID:0CUh0fF8使いどころ間違えて自爆してるけど
0359デフォルトの名無しさん
2015/10/25(日) 23:23:12.66ID:hQyThWO7エクスプローラでコピーした場合です
0360デフォルトの名無しさん
2015/10/25(日) 23:41:15.34ID:RC9wdhkQカプセル<多様性だな
カプセル化意識し過ぎると処理速度(特にゲーム)とかが酷くなる
0361デフォルトの名無しさん
2015/10/26(月) 00:36:32.71ID:qJuY+u/q0362デフォルトの名無しさん
2015/10/26(月) 00:42:27.84ID:0a7DJh5E多様性と思ってた
0363デフォルトの名無しさん
2015/10/26(月) 00:47:33.11ID:pea7EB//多分まともに動くものを作り上げたことがないんだろう
0364デフォルトの名無しさん
2015/10/26(月) 01:13:26.64ID:jSFkYHTfベンチすら見ないで物言ってそうな空気
0365デフォルトの名無しさん
2015/10/26(月) 03:25:47.91ID:vCh8HvqXエンジンにもよるが副作用がいつ起きるか把握できん。
0366デフォルトの名無しさん
2015/10/26(月) 07:47:01.63ID:7G3hAEBt0367デフォルトの名無しさん
2015/10/26(月) 08:17:31.68ID:C98YS4z/0368デフォルトの名無しさん
2015/10/26(月) 16:05:25.14ID:ewlzRHbIこの場合tokenはInterruptMethod内でどのように記述すればよいですか?
〜〜〜
if(_tokenSource == null) _tokenSource = new CancellationTokenSource();
var token = _tokenSource.Token;
await Task.Run(()=>InterruptMethod(), token).ContinueWith(t => {
_tokenSource.Dispose();
_tokenSource = null;
});
〜〜(略)〜〜
private void InterruptMethod()
{
}
0369デフォルトの名無しさん
2015/10/26(月) 16:18:23.55ID:0a7DJh5E配列をcloneして渡したりしてたら時間かからない?メモリ的にも不利だし
0370デフォルトの名無しさん
2015/10/26(月) 16:24:50.69ID:SRHIhdAJTask.Run(()=>InterruptMethod(token), token).以外略;
private void InterruptMethod(CancellationToken token) {
}
やはり多態と多様を間違って覚えていた人の発言は一味違う
木を見てなんとやら
0371デフォルトの名無しさん
2015/10/26(月) 17:01:46.79ID:pea7EB//ReadOnlyCollectionでも使え
0372デフォルトの名無しさん
2015/10/26(月) 17:08:48.73ID:AGAQ9bh1インポートできないかな、ってC#関係ないな
0373デフォルトの名無しさん
2015/10/26(月) 17:23:46.84ID:0a7DJh5E凄い
こんなのあったのか
0374デフォルトの名無しさん
2015/10/26(月) 19:09:46.32ID:F0ZP2A+20375デフォルトの名無しさん
2015/10/26(月) 19:42:21.44ID:7G3hAEBt0376デフォルトの名無しさん
2015/10/26(月) 19:42:28.57ID:SRHIhdAJ0377デフォルトの名無しさん
2015/10/27(火) 00:16:23.97ID:8C7djFoA0378デフォルトの名無しさん
2015/10/27(火) 06:35:15.42ID:vxRkO0y7/// ビットマップ(Bitmap)を回転する
/// </summary>
/// <param name="bmp">ビットマップ</param>
/// <param name="angle">回転角度</param>
/// <param name="x">中心点X</param>
/// <param name="y">中心点Y</param>
/// <returns></returns>
public Bitmap RotateBitmap(Bitmap bmp, float angle, int x, int y)
{
Bitmap bmp2 = new Bitmap((int)bmp.Width, (int)bmp.Height);
Graphics g = Graphics.FromImage(bmp2);
g.Clear(Color.Black);
g.TranslateTransform(-x, -y);
g.RotateTransform(angle, System.Drawing.Drawing2D.MatrixOrder.Append);
g.TranslateTransform(x, y, System.Drawing.Drawing2D.MatrixOrder.Append);
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBilinear;
g.DrawImageUnscaled(bmp, 0, 0);
g.Dispose();
return bmp2;
}
このコード少し中心がずれてさらになぜか1.2倍ぐらい拡大されてるんですが、いったいどうなってるんですか?
致命的なバグでもあるんでしょうか
0379デフォルトの名無しさん
2015/10/27(火) 07:31:28.81ID:AF18ul7Zおそらくお前が期待しているものとは違う
普通にDrawImage使えばいい
関係ないけどDisposeなんか書くなusing使え
0380デフォルトの名無しさん
2015/10/27(火) 13:03:01.43ID:nTHAaiUE0381デフォルトの名無しさん
2015/10/27(火) 13:29:17.45ID:LyVSHq6d0382デフォルトの名無しさん
2015/10/27(火) 13:43:42.84ID:oZ3zd0d4「命令口調君って馬鹿だな」
です
正しくレスしましょうね
0383デフォルトの名無しさん
2015/10/27(火) 14:19:38.50ID:gDs0OAHtコンストラクタとLoadイベントと
usingとDisposeって
皆さんはどちらを使っているんですか?
0384デフォルトの名無しさん
2015/10/27(火) 14:24:46.83ID:g1+/LNmdここの人たちは自分でunityから作るような人たちなの?
0385デフォルトの名無しさん
2015/10/27(火) 15:10:56.72ID:oZ3zd0d4質問する前に病院行って問診してもらえよ
0386デフォルトの名無しさん
2015/10/27(火) 15:16:17.66ID:LyVSHq6dコンストラクタとLoad/OnLoadは用途が別でしょ
>>382
命令口調君って馬鹿だな、まで読んだ
じゃなかったっけか
0387デフォルトの名無しさん
2015/10/27(火) 15:42:59.19ID:sDzKh5alウィンドウが生成された後じゃないとやれないならLoadイベントなりOnLoadをオーバーライドしたりで。
usingが使える場面は、原則using。
適材適所で使えばいい。
0388デフォルトの名無しさん
2015/10/27(火) 16:09:37.28ID:scBMsQMX0389デフォルトの名無しさん
2015/10/27(火) 16:11:53.68ID:scBMsQMX>>388は>>383です
0390デフォルトの名無しさん
2015/10/27(火) 17:27:59.94ID:vxRkO0y7thx
0391デフォルトの名無しさん
2015/10/28(水) 04:40:41.67ID:wj9WG103どうやって作ったらいいの?
(´・ω・`)
0392デフォルトの名無しさん
2015/10/28(水) 06:39:54.32ID:1FF+1WKVやっぱり付けるとマズいですか?(WindowManagerとかViewManagerとか)
Manage(管理)って言われても具体的に何を、どのような機能を管理してるのか分からないって言われました
0393デフォルトの名無しさん
2015/10/28(水) 07:21:56.07ID:8s7NCB3J緊急地震速報は気象庁に問い合わせないとダメ
予報だからいい加減なソース使うと捕まるよ
>>392
その通り
0394デフォルトの名無しさん
2015/10/28(水) 08:37:02.75ID:UYNcQBr4もっと具体的な名称にしてもらいたい
0395デフォルトの名無しさん
2015/10/28(水) 09:12:53.06ID:JFpDXlQ+どのような機能を管理してるのかは知らんが
何とかManagerってクラス名なら、「何を」はわかるだろう
その命名がまずいかどうかはお前のとこの命名規則次第
0396デフォルトの名無しさん
2015/10/28(水) 09:22:50.56ID:Djn1jnu+思いつかなければ適当でも構わんと思うがな
設計書さえちゃんとしていればいい
0397デフォルトの名無しさん
2015/10/28(水) 18:54:27.94ID:8zJiOHJK> Manage(管理)って言われても具体的に何を、どのような機能を管理してるのか分からないって言われました
で、それに対してちゃんと説明できるの?
説明できないなら、クラスの作り方がまずいか君がきちんと理解できてないってこと
説明できるならそれを端的に示す名前をつければいい
ただ、所詮数単語分しか使えないから >>396 の言う様にあまり凝ってもしょうがないので、コメントなり設計書を充実させた方がいい
0398デフォルトの名無しさん
2015/10/28(水) 19:04:19.10ID:UYNcQBr4タスク管理や、営業や、自ら作業を行うし、色々やる。
いわば、コンポーネント群にアクセスするためのAliasのようなもんで、自身はそれを受け持つ器にすぎないのだから、なんのインスタンスを持つかだけ書けばいいと思うが。
逆に言えば、マネージャー自身になるべくメソッドを持たせてはいけない。
0399デフォルトの名無しさん
2015/10/28(水) 19:22:16.11ID:se9H+oL4マネージャー自身になるべくメソッドを持たせてはいけない。
マネージャー自身になるべくメソッドを持たせてはいけない。
初心者でよくわからんがなんか感動した。タイミングだろうが 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
0400デフォルトの名無しさん
2015/10/28(水) 20:32:14.12ID:3O8Xwln/マジで若年性アルツハイマーの疑いがあるから病院で診てもらえ。
普通の人間はお前さんがやってるような繰り言を好まない(むしろ嫌悪感を感じる)が、脳にダメージがあると
お前さんのように繰り言や同じことの繰り返しに快感を感じるようになる。
0401デフォルトの名無しさん
2015/10/28(水) 21:17:58.21ID:se9H+oL4そうなのか
最近おかしいので脳梗塞かと思ってたけど・・・その考えはなかった
しかし精神病だと言われて言ってみら正常だからもうくんなとか言われて恥をかいたので鵜呑みにできない
0402デフォルトの名無しさん
2015/10/28(水) 21:36:02.28ID:3nTbM/Mv自分の人格障害を疑えよ
0403デフォルトの名無しさん
2015/10/28(水) 21:40:04.01ID:N4hu8nHh└┘
0404デフォルトの名無しさん
2015/10/28(水) 23:07:28.64ID:3O8Xwln/真面目にそうだよ。
反復行動や繰り言はボケの初期症状。
2chでも実況とかで毎日同じレスを繰り返してる奴がいるけど、ああいう奴の何割かは確実にヤバい。
0405デフォルトの名無しさん
2015/10/28(水) 23:20:01.88ID:zTRdryA5糞して寝ろゴミ
0406デフォルトの名無しさん
2015/10/29(木) 00:05:27.68ID:y57Q0DlAボケないように無職にならないと
0407デフォルトの名無しさん
2015/10/29(木) 19:46:57.90ID:3XC8GuXY0408デフォルトの名無しさん
2015/10/29(木) 20:34:52.83ID:QT8b22UI0409デフォルトの名無しさん
2015/10/30(金) 01:22:44.08ID:wTNAYNO/0410デフォルトの名無しさん
2015/10/30(金) 04:36:04.75ID:9YpT7G8Lアセンブリが読み込まれていない場合変更が許可されていないと出るんだがどうすればいい?
同一ソリューション内にクラスライブラリプロジェクトを作ってメインプロジェクトに参照設定したのでクラスライブラリーのコードを書き換てビルドするだけで
呼び出し先コードを動的に変化させられると思ったんだが甘かった
0411デフォルトの名無しさん
2015/10/30(金) 04:42:47.45ID:opwym8fe今ならLINQの式ツリーを使うのがベストかと思う
0412デフォルトの名無しさん
2015/10/30(金) 05:22:30.47ID:9YpT7G8Lもっと簡単でいいんだけど
VS二つ立ち上げてdllの中実行するたびにdll自体を再読み込みする設定とかないの?
HDDぶっ壊れるから無理なのかな
0413デフォルトの名無しさん
2015/10/30(金) 05:47:54.39ID:opwym8feどういう事をしたいのか分かれば、どの方向性がいいか答えられるかもしれないけど、掲示板越しではちょっと難しいかもしれない
0414デフォルトの名無しさん
2015/10/30(金) 06:28:44.46ID:9YpT7G8L簡単な式の変更だけでいいんだけど
HP -= attackポイント-defenseポイント
を
HP -= attackポイント-defenseポイント*スキル1
とかに細かく変更してバランスを取りたい
とりあえずCSharpCodeProviderとかいうのは全く意味がわからなかった
Assembly.LoadFrom(DLLのフルパス);をボタンに設定したが、DLL側のVSでアクセス拒否でコンパイルできない。
動的式変更ってみんなどうやってんだよ
0415デフォルトの名無しさん
2015/10/30(金) 06:32:27.31ID:opwym8fe難解かもしれませんが、無理してでも式ツリーがベストだと思います
0416デフォルトの名無しさん
2015/10/30(金) 06:35:41.31ID:opwym8feそれで良いなら、やり方はあるかもしれない
0417デフォルトの名無しさん
2015/10/30(金) 06:36:30.12ID:9YpT7G8L了解
LINQの勉強から始めますw
ありがとね
0418デフォルトの名無しさん
2015/10/30(金) 06:48:24.54ID:9YpT7G8L速度が遅くなるならスクリプトってのは本体に戻すものなのかな
わからん
0419デフォルトの名無しさん
2015/10/30(金) 06:57:18.47ID:opwym8feWFCとか
0420デフォルトの名無しさん
2015/10/30(金) 07:26:27.95ID:mUvrP2A4もしくは 結果 = 係数1 * ポイント * ポイント + 係数2 * ポイント
みたいな行列の計算式として一般化して係数行列だけファイルから読むとかな (スキルの値もポイント行列に含める)
沢山変える場所があるから自由にソース弄りたいというなら小細工するよりいっそLuaでも組み込んだほうがいい
0421デフォルトの名無しさん
2015/10/30(金) 07:44:32.17ID:opwym8fe二度と見たくないコードになりそうw
0422デフォルトの名無しさん
2015/10/30(金) 08:10:06.51ID:mUvrP2A4式ツリーって自分で言ってること分かってるんだろうか
自分でDSL作ってパースしてそれに従って式組み立てるんだぞ?
んなクソ面倒な再発明するくらいならスクリプト組み込むわ
0423デフォルトの名無しさん
2015/10/30(金) 08:16:59.27ID:opwym8feXMLで式書いて、式ツリーに変換してしまえば、数行の再帰ルーチン一個でできますが?
0424デフォルトの名無しさん
2015/10/30(金) 08:23:13.87ID:opwym8fe速度いらないなら、式ツリーは無視でいいですよ
0425デフォルトの名無しさん
2015/10/30(金) 08:32:26.67ID:mUvrP2A4それをDSLという
パラメータの値はどこから取ってくるの?それもXMLにいちいち書くの?
現実的にはいろいろ柔軟性を捨てて決め打ちすることになるだろうから、非常に限定的なDSLになると思うよ
どうせ限定的な使い捨てコードなんだったらそんな大袈裟なことはしたくないね俺なら
0426デフォルトの名無しさん
2015/10/30(金) 08:35:17.46ID:opwym8fe何が言いたいのかよくわからんけど、知識なさすぎじゃねぇのw
お前、ずっとここに居座っているキティ回答者なんだろうけど、死ねばいいと思います
0427デフォルトの名無しさん
2015/10/30(金) 10:35:59.08ID:v/tjtbaN0428デフォルトの名無しさん
2015/10/30(金) 11:08:18.70ID:opwym8feまぁ、知識なければ無理でしょうけどね、バカはバカなりにして回答者にならずに引っ込んで下さいって感じです
ゴミ回答でレスどんどん流れていくのは迷惑です
スラドで暴れるMS工作員といい、昨今MS周辺にキチガイ多すぎだよ
0429デフォルトの名無しさん
2015/10/30(金) 11:28:28.02ID:5k9fNgvi0430デフォルトの名無しさん
2015/10/30(金) 11:34:54.86ID:opwym8feアプリケーション間通信お勧めです
とだけ最後に
これなら独立してコンパイルもできるし、部分再起動もデバッグも容易
式ツリーは、パフォーマンスはでるがデバッグがファッキンな事になるので
0431デフォルトの名無しさん
2015/10/30(金) 11:38:18.84ID:opwym8feなにより、WEBに情報量が多いので
キーワードはWFC
0432デフォルトの名無しさん
2015/10/30(金) 11:40:32.84ID:opwym8fe○WCFでした
0433デフォルトの名無しさん
2015/10/30(金) 11:41:56.65ID:mUvrP2A4.NETアプリに簡単に組み込めるのはいくらでもあるし、COMでJScript呼んでもいい
WFC()なんかより遥かに簡単だよ
0434デフォルトの名無しさん
2015/10/30(金) 11:44:51.01ID:opwym8feまぁ、式の話だけならそれでもいいとは思うけど、dllでかつパフォーマンス要らないというのだから
言語を共通化しておきたい理由があるのかなと思っただけです
0435デフォルトの名無しさん
2015/10/30(金) 11:47:11.41ID:opwym8feと、ずっと流れを見ていて思う所
0436デフォルトの名無しさん
2015/10/30(金) 13:00:36.70ID:GDTU3KP4平日の午前中だけで15回もレスしてる奴がまともとはとうてい思えない現実
0437デフォルトの名無しさん
2015/10/30(金) 14:05:02.67ID:PGAJ1OT+0438デフォルトの名無しさん
2015/10/30(金) 14:20:18.47ID:zaAGkshB0439デフォルトの名無しさん
2015/10/30(金) 15:58:51.03ID:5vqzX8bU0440デフォルトの名無しさん
2015/10/30(金) 16:00:13.93ID:opwym8fe0441デフォルトの名無しさん
2015/10/30(金) 16:13:31.41ID:5vqzX8bUネット掲示板以外で聞ける場所がないんです
0442デフォルトの名無しさん
2015/10/30(金) 17:05:36.71ID:GDTU3KP40443デフォルトの名無しさん
2015/10/30(金) 17:45:05.20ID:5vqzX8bU最後に、作法の本でお勧めのタイトル教えて下さい
0444デフォルトの名無しさん
2015/10/30(金) 17:58:32.30ID:PGAJ1OT+定数としてまとまってると変更するとき楽だし
書捨てコードならそんなことはしないけど
0445デフォルトの名無しさん
2015/10/30(金) 18:09:03.11ID:5vqzX8bUただ、一度しか使わない判定文とかはローカル変数切るの面倒くさいなと思って
適当なリテラル書いちゃう事もあるんですが、どうなのかなと思って
0446デフォルトの名無しさん
2015/10/30(金) 18:18:01.14ID:TILHDHb5リテラルを避ける動機として変更の容易さはよく挙げられるけど実際はむしろ多いケースじゃない。
リテラルを避ける動機は、プロパティやメソッドにちゃんとした名前を付けるのと同じ。
それが何を意味しているのかのメタ情報を付け加えるため。
だからたとえ一回しか出てこない定数でも、それが何を意味しているのかをコード上で明示する必要が
あると思えば、それがちゃんとした名前を与える動機になる。
0447デフォルトの名無しさん
2015/10/30(金) 18:36:25.26ID:5vqzX8bUなるほど、よく分かりました
ありがとうございました。
0448デフォルトの名無しさん
2015/10/30(金) 19:51:46.37ID:MYsCE15E0449デフォルトの名無しさん
2015/10/30(金) 20:12:53.58ID:qxv1tbgN0450デフォルトの名無しさん
2015/10/30(金) 20:13:36.95ID:FKezdCziソフトウェア作法
ついでにプログラム書法も読め
0451デフォルトの名無しさん
2015/10/31(土) 01:16:24.67ID:rX+RYEJQ0452デフォルトの名無しさん
2015/10/31(土) 10:34:56.02ID:bc83RtfA0453デフォルトの名無しさん
2015/10/31(土) 13:16:21.42ID:Yq2ZBfqO0454デフォルトの名無しさん
2015/10/31(土) 13:46:46.22ID:CR8bSv/n0455デフォルトの名無しさん
2015/10/31(土) 19:22:29.59ID:qtS/NLO9VS2015で同様に開発を継続しても不具合とかないですよね?
0456デフォルトの名無しさん
2015/10/31(土) 21:27:12.40ID:aiNNK1XkC#のバージョンが違うから出ないとも限らない
0457デフォルトの名無しさん
2015/10/31(土) 22:30:49.30ID:nJia6E4E0458デフォルトの名無しさん
2015/10/31(土) 23:44:21.04ID:XeEgNn+4Roslynのお陰か起動やたら遅いし
0459デフォルトの名無しさん
2015/11/01(日) 00:43:39.73ID:ak4S1goKマイクロソフト製品はどれも品質がひどく悪くなっている
今は、学生はともかく業務の人は別途マシンを用意して試験期間を経てからにしたほうが無難
0460デフォルトの名無しさん
2015/11/01(日) 00:46:56.25ID:ak4S1goKこういうのマジで勘弁してほしいんだけどな
0461デフォルトの名無しさん
2015/11/01(日) 03:12:33.04ID:dH8H+Y8O0462デフォルトの名無しさん
2015/11/01(日) 03:21:18.28ID:ak4S1goK0463デフォルトの名無しさん
2015/11/01(日) 08:56:11.81ID:xZAu8pjvサイズを拡大する時は正常ですが、縮小時に変化幅が小さいと正常に表示されるのですが
変化幅が大きいと表示されませんが何故でしょうか?
private void Form1_SizeChanged(object sender, EventArgs e)
{
toolStripComboBox1.Width = (toolStrip1.Width - 300);
}
以下も同じ
private void toolStrip1_SizeChanged(object sender, EventArgs e)
private void toolStrip1_Resize(object sender, EventArgs e)
private void Form1_SizeChanged(object sender, EventArgs e)
private void Form1_ResizeEnd(object sender, EventArgs e)
private void Form1_Resize(object sender, EventArgs e)
0464デフォルトの名無しさん
2015/11/01(日) 11:39:20.34ID:I6OT07I5dobonに載っていた下記のコードの何処に追加したらよいのか判りません
よろしくお願いします
//ファイルを上書きし、Shift JISで書き込む
System.IO.StreamWriter sw = new System.IO.StreamWriter(
@"C:\test\1.txt",
false,
System.Text.Encoding.GetEncoding("shift_jis"));
//TextBox1.Textの内容を1行ずつ書き込む
foreach (string line in TextBox1.Lines)
{
sw.Write(line + sw.NewLine);
}
//閉じる
sw.Close();
0465デフォルトの名無しさん
2015/11/01(日) 12:06:14.89ID:VEmEMCzM1.txtを"C:\test\"じゃなくてアプリケーションの実行フォルダに出力したいってことなら
「@"C:\test\1.txt"」を「Path.Combine(Application.StartupPath,"1.txt")」に置き換えればいいんじゃね
0466デフォルトの名無しさん
2015/11/01(日) 12:06:43.65ID:iCjS0aFW0467デフォルトの名無しさん
2015/11/01(日) 14:05:43.27ID:EzyPWtsW付随のプロパティーやメソッドが
どのような便利機能があるのかを知るだけでも大変
更に
詳細を調べ
実装するに至るまでがまた大変
Microsoft 地獄
0468デフォルトの名無しさん
2015/11/01(日) 14:11:08.59ID:8yFkftFr帰っていいよ
0469デフォルトの名無しさん
2015/11/01(日) 16:19:50.04ID:aracFvq3ファイル出力(またはDBに出力)したいんだけど
一番良い実装方法ってないでしょうか
自分の頭だと
1.ストリームデータが到来するたびにFile.Open(Mode.Append)で書き込んでFileCloseする
ぐらいしか思いつかないんです
0470デフォルトの名無しさん
2015/11/01(日) 16:46:54.21ID:8wBAqxRo> 一番良い実装方法ってないでしょうか
お前の「一番良い」の定義によるわな
0471デフォルトの名無しさん
2015/11/01(日) 17:19:43.69ID:gG04aPZk0472デフォルトの名無しさん
2015/11/01(日) 17:25:41.75ID:qxPDGDEe・Aをした後Bをして、Bの後にCをしてCの後にDをする
・A〜Dまではメソッド化してMethA〜MethDがある
これを
void Main()
{
MethA();
MethB();
MethC();
MethD();
}
ではなく
MethA(){ (の終端で)MethB();}
MethB(){ (の終端で)MethC();}
MethC(){ (の終端で)MethD();}
とメソッド内で次々メソッドをコールしていくのってアンチパターンですか?
0473デフォルトの名無しさん
2015/11/01(日) 17:34:19.28ID:OsaYEXf6void Main()
{
ご飯を食べる();
歯を磨く();
着替える();
家をでる();
}
ではなく
ご飯を食べる(){ (の終端で)歯を磨く();}
歯を磨く(){ (の終端で)着替える();}
着替える(){ (の終端で)家をでる();}
}
とメソッド内で次々メソッドをコールしていくのってアンチパターンですか?
0474デフォルトの名無しさん
2015/11/01(日) 17:34:31.06ID:fyC3CDzJやめなさい。メソッドはgotoではない。
中で呼んでるメソッドの処理も含めてそのメソッドの処理だ。
コボラーはよくそういうコード書くよ。
PERFORM INPUT_CHECK.で全ての処理が終わるの。
0475デフォルトの名無しさん
2015/11/01(日) 17:35:49.13ID:OsaYEXf60476デフォルトの名無しさん
2015/11/01(日) 17:36:57.57ID:qxPDGDEeありがとうございます。
それってメソッド内で別メソッドをコールする事自体ダメって事ですか?
それとも基本ダメだけどケースバイケースという意味ですか?
0477デフォルトの名無しさん
2015/11/01(日) 17:38:25.26ID:OsaYEXf6さらに言うとご飯を食べたら必ず家を出ることになるけどそれでいいのか?
0478デフォルトの名無しさん
2015/11/01(日) 17:38:34.51ID:qxPDGDEeすみません・・・よく分かりません・・・
0479デフォルトの名無しさん
2015/11/01(日) 17:40:21.93ID:OsaYEXf60480デフォルトの名無しさん
2015/11/01(日) 17:42:33.30ID:VEmEMCzM0481デフォルトの名無しさん
2015/11/01(日) 17:42:55.19ID:OsaYEXf6意味的にまとまった単位にすべき
0482デフォルトの名無しさん
2015/11/01(日) 18:28:41.58ID:tijcq3hU0483デフォルトの名無しさん
2015/11/01(日) 18:43:27.56ID:NUcI8HigNO
メソッド内で別メソッドをコールしても良い
>それとも基本ダメだけどケースバイケースという意味ですか?
NO
基本的にOKだがケースバイケースでだめな場合がある
>>472などはだめな場合の典型だ
このようなコードを書くと、テスト担当者や将来これをリファクタリングする者が、
ぶち切れて君を殴りに来るだろう
0484デフォルトの名無しさん
2015/11/01(日) 19:07:02.64ID:qxPDGDEeありがとうございます
0485デフォルトの名無しさん
2015/11/01(日) 19:16:41.45ID:SU1ih8K9>>473とかの説明は分かりやすいと思うけどね。
茶化すだけではなくて、本当に学びたいのなら、
>>480の指摘通り、君のコードを晒してみるべきだよ。それは473のように日本語でもいい。
俺は多分 MethA,B,C,D の切り方に間違いがあるのだと思うが。
0486デフォルトの名無しさん
2015/11/01(日) 19:28:16.61ID:ps5s1FTp仕様変更がないならね
0487デフォルトの名無しさん
2015/11/01(日) 22:15:26.87ID:nfigy2gy○○.vb
○○.Designer.vb
○○.resx
の3つが作成されますが、○○.resxはどういったときに使うのでしょうか?
0488デフォルトの名無しさん
2015/11/01(日) 22:29:30.44ID:yv99Jyneひとつのメソッドで完結してなきゃダメだよ。
その後の動作に一貫性があるなら内包すべき
0489デフォルトの名無しさん
2015/11/01(日) 22:36:12.65ID:qJZnh0GVvbスレで聞けと言いたい所だが、テキストエディタで中身開いてみれば大体分かるよ
0490デフォルトの名無しさん
2015/11/01(日) 22:55:30.95ID:nfigy2gy○resheaderってなに?
○xsdってなに?
○xsd要素内に長々と設定が書かれているけどこれはなに?
疑問が増えてしまったのですが…。
0491デフォルトの名無しさん
2015/11/01(日) 23:01:09.49ID:nfigy2gyC#では大文字で始まるStringと小文字で始まるstringがありますが、
この2つに何か違いなどはあるのでしょうか?
0492デフォルトの名無しさん
2015/11/01(日) 23:01:58.94ID:83j3eZbo0493デフォルトの名無しさん
2015/11/01(日) 23:02:53.98ID:nfigy2gyありがとうございます
0494デフォルトの名無しさん
2015/11/01(日) 23:07:00.98ID:nfigy2gyobject型に存在しないメソッドを記述してもIDEがエラーを検出してくれないのですが、
これは正しい挙動なのでしょうか?
他の型ではIDEがきちんとエラーを検出してくれます。
0495デフォルトの名無しさん
2015/11/01(日) 23:11:08.80ID:83j3eZboそれ以外はエラーになるはず
0496デフォルトの名無しさん
2015/11/01(日) 23:14:10.19ID:nfigy2gy拡張メソッドがない時にきちんとエラーが出るかどうかを試してみます。
回答ありがとうございます。
0497デフォルトの名無しさん
2015/11/01(日) 23:19:27.21ID:qJZnh0GVタグは別に理解しなくていい、した方がいいかもだけど
ファームにコントロール追加してプロパティを設定してからresxの中身見てみろ
>>494
vbの話じゃないだろうな…
0498デフォルトの名無しさん
2015/11/01(日) 23:19:40.79ID:nfigy2gyこれであっているでしょうか?
できればexeやdllのILを読んでみたいのですが、おすすめのツールなどはありますでしょうか?
もう本当に、何度も質問してすみません…現実に質問できる人がいなくて…
0499デフォルトの名無しさん
2015/11/01(日) 23:21:32.65ID:qJZnh0GV0500デフォルトの名無しさん
2015/11/01(日) 23:24:36.60ID:MnKC4BnX.NET Frameworkに同梱のildasm.exeで読める
本格的に解析するならオープンソースのILSpyが便利
0501デフォルトの名無しさん
2015/11/01(日) 23:24:42.06ID:nfigy2gyできれば同じプログラマの方から直接答えをいただきたいというか…
この気持ちわかりませんか?
0502デフォルトの名無しさん
2015/11/01(日) 23:28:37.70ID:ak4S1goK0503デフォルトの名無しさん
2015/11/01(日) 23:42:15.83ID:2F0TVXaS0504デフォルトの名無しさん
2015/11/01(日) 23:46:40.91ID:SU1ih8K9お前、向いてないと思うぞ。
プログラミングは探求心と好奇心があって自己完結できる奴じゃないと上達しにくい。
ググレばすぐに出てくることを質問されても、迷惑でしかない。
構ってちゃんは死ねの世界だよ。
0505デフォルトの名無しさん
2015/11/01(日) 23:49:41.32ID:OsaYEXf6なにか君は違う分野の人だと思うよ
0506デフォルトの名無しさん
2015/11/02(月) 00:10:01.74ID:lz5NDAKO0507デフォルトの名無しさん
2015/11/02(月) 00:52:00.08ID:LDPQCdy00508デフォルトの名無しさん
2015/11/02(月) 01:41:06.91ID:w3sTMEnoプログラマーの皆さん助けて…とか広告出してるから
如何にクソな質問でも答えるんだろ?たぶん
stackoverflowは止めとけ
お前なんか顔面にグーパンぶち込まれて終わりだから
人間的なリアクションすら期待できないぞ
0509デフォルトの名無しさん
2015/11/02(月) 01:55:56.07ID:ZkM1wHMyそういう質問には答えが返ってこないことが多いけどな。
0510デフォルトの名無しさん
2015/11/02(月) 02:06:35.75ID:lz5NDAKOニコ生でプログラミング放送すればいい。
「初心者です。C#勉強してます。アドバイスください」みたいにしてさ
暇な教えたがりが丁寧に教えてくれるよww
0511デフォルトの名無しさん
2015/11/02(月) 02:27:46.08ID:2uUBRP/w誰に威張ってるつもりなのかね。馬鹿じゃなかろうか。
0512デフォルトの名無しさん
2015/11/02(月) 02:33:52.94ID:mV+KRjUE0513デフォルトの名無しさん
2015/11/02(月) 02:47:30.12ID:mV+KRjUEなるほど
0514デフォルトの名無しさん
2015/11/02(月) 03:21:28.27ID:8j1BqD6a国語の勉強から始めようか
0515デフォルトの名無しさん
2015/11/02(月) 06:18:48.27ID:K38GcwBv自己解決しました
if (toolStrip1.OverflowButton.Visible)
{
toolStrip1.Width = toolStrip1.Width - toolStrip1.OverflowButton.Width - toolStrip1.OverflowButton.Margin.Horizontal;
}
でうまく行きました。
0516デフォルトの名無しさん
2015/11/02(月) 07:45:31.68ID:jIDLqNePかまってちゃんウゼェーなんだけどな
キチガイ回答者死ねと同じ理由で、どっか行きやがれって事だ
同一人物の自演くせぇけどw
0517デフォルトの名無しさん
2015/11/02(月) 11:09:13.20ID:/Om+5HJhなんか、精神レベル14歳だな。
別にそれでも知ったことじゃないけど、わざわざこんなところで開陳して嬉しいのか?
0518デフォルトの名無しさん
2015/11/02(月) 11:58:16.38ID:jIDLqNeP強引に話題を正しい方向にもっていったら、頭おかしい初心者が現れる
この掲示板は以下それがずっとループしている、同一人物以外には見えない
本物の初心者が来たとき間違って叩いて掲示板が荒れると具合が悪いからとっとと死んでくださいって感じだね
0519デフォルトの名無しさん
2015/11/02(月) 14:57:34.97ID:lyk3EOWaえらい見づらくなってる ていうか、バグってる
なんで、IEで表示して、重なって表示してまともに操作できないのか理解できない
一番 右に表示されるべき 「解決策はありますか」等が左に重なって表示されてて
まともに、クリックにも反応しないし
0520デフォルトの名無しさん
2015/11/02(月) 15:00:31.80ID:9+4jFg/5IEはテストのときだけ使うもんだ
0521デフォルトの名無しさん
2015/11/02(月) 15:15:44.14ID:lyk3EOWaしかし、最近IE使って、スクリプトエラーでHP見れなかったりいいことないわ
(Webサイトのせいにしてるけど、他のブラウザなら見れるだろうしw)
MSの本気が見たい
0522デフォルトの名無しさん
2015/11/02(月) 16:23:32.54ID:ysex+PePIE8使ってるならご愁傷様
0523デフォルトの名無しさん
2015/11/02(月) 17:05:07.62ID:lyk3EOWa互換性表示にしてみたけど、変わらず
なんかの設定があるのかな?
ともあれいろいろ試してみます
0524デフォルトの名無しさん
2015/11/02(月) 17:40:45.22ID:lyk3EOWa拡張保護モードによるものだった
msdnの表示も、HPが見れない件も(Web サイトに問題が発生したため…)
拡張保護モードはそのままで、信頼済みサイトの登録したら両方とも治った
>>522さんのおかげだね あと、スレチ悪かった
0525デフォルトの名無しさん
2015/11/02(月) 20:30:30.83ID:6BSNMQg5ローカルにヘルプインストールするやつさ
0526デフォルトの名無しさん
2015/11/02(月) 21:09:41.05ID:lyk3EOWa今のmsdnに比べれば天国
0527デフォルトの名無しさん
2015/11/02(月) 21:20:07.89ID:KsZtwWaeヘルプ→ヘルプ設定の変更→ヘルプビューアーで起動
メニューぐらいしっかり見よう
0528デフォルトの名無しさん
2015/11/02(月) 21:20:21.31ID:i/oY4D53オフラインのヘルプ コンテンツをインストールする
Visual Studio をインストールした後、オフラインで使用できるように、
追加のヘルプ コンテンツをダウンロードすることができます。
目が節穴なのか、
目のドライバをインストールするのを忘れているのか、
頭のサポートが切れているのか
0529デフォルトの名無しさん
2015/11/02(月) 21:23:00.50ID:6BSNMQg5>>528
おー
機能2015インスコしたばっかだったので
助かりましたわー
0530デフォルトの名無しさん
2015/11/02(月) 21:23:06.26ID:5XQF34dG現に成功している。
0531デフォルトの名無しさん
2015/11/02(月) 21:33:44.76ID:6BSNMQg5だけどダウンロード速度おっそ!
0532デフォルトの名無しさん
2015/11/02(月) 22:42:45.43ID:oXEakMplおっしゃるように、C#ではなくVBでした。勘違いしてしまって誠に申し訳ありません。
.resxのほうは、「リソースの追加」をすることで.resxファイルが書き換えられることはわかりました。
でもいくらフォームにコントロールに追加してそのプロパティを変えても、
.resxの内容は書き換わりません…。どういうことなのでしょうか?
0533デフォルトの名無しさん
2015/11/02(月) 22:47:53.10ID:oXEakMpl丁寧に教えていただきありがとうございます。
まさか既にデコンパイラプログラムがパソコン内に入っているとは思いませんでした。
これからはildasm.exeでILを読むことにします。
0534デフォルトの名無しさん
2015/11/03(火) 09:42:13.71ID:Lrk43gMLそういうのは*.designer.csのInitializeComponentの中に書かれる
0535デフォルトの名無しさん
2015/11/03(火) 11:55:19.90ID:zP0KaUIs0536デフォルトの名無しさん
2015/11/03(火) 12:03:03.87ID:VtUJC+iX.resxは、リソース(画像とか音声・テキストデータ)関係のファイルでVSが自動生成しているんだが、別に中身がどうとか気にする必要はない。
そういうのを真剣に気にして終いには、ILを読むとかわけのわからないことに手を出そうとする。
0537デフォルトの名無しさん
2015/11/03(火) 12:34:16.13ID:56qTwYt/0538デフォルトの名無しさん
2015/11/03(火) 12:35:33.64ID:iiu9ggf5分割で読み込めればいいのですがいい方法ありませんか?
0539デフォルトの名無しさん
2015/11/03(火) 14:08:45.19ID:zP0KaUIsコンピュータは全部機械語での動作だから機械語の勉強した方がいいと思うよ
0540デフォルトの名無しさん
2015/11/03(火) 14:33:19.93ID:HNCOBt+uリソースファイルについてですが、Lockedプロパティの値を変えたときにリソースファイルが書き換えられました。
どうやら、コントロールが持てない情報はリソースファイルが利用されるみたいです。
>>497さんの言っていることが分かりました。
お答えいただいた方々には本当に感謝しています。ありがとうございます。
また一つ疑問が生まれたので質問いたします。
var table = new DataTable();
...
table.Rows.Where(...
このように記述したとき、RowsにはWhereメソッドがないとIDEに怒られます。
DataRowCollectionクラスはIEnumerableインターフェースを実装しているのに、なぜWhereメソッドが使えないのでしょうか?
0541デフォルトの名無しさん
2015/11/03(火) 14:41:50.95ID:VtUJC+iX0542デフォルトの名無しさん
2015/11/03(火) 17:08:20.36ID:wuOw+s8i0543デフォルトの名無しさん
2015/11/03(火) 17:17:21.05ID:VtUJC+iX0544デフォルトの名無しさん
2015/11/03(火) 17:19:13.97ID:nnAxfjVLすくなくてもSSLで接続したいのだが、mysqlサーバ側のsslを有効にする方法が見つかるのだけど
visualstudio側でデータソースに設定したいときにどうしたよいかの手段が見つからない
C# mysql ssl あたりでぐぐってもこれといって方法が見つからないのだけど、
なにかヒントになるものがあればアドバイスください
0545デフォルトの名無しさん
2015/11/03(火) 17:58:17.90ID:UfQouXyCusing dbl = System.Double;
でもこんなことすんなアホって絶対言われる
自分も絶対後悔する
0546デフォルトの名無しさん
2015/11/03(火) 17:59:19.49ID:6ritcPOXMySQL Connector/Net の場合ならここでなんとかならんかね
https://dev.mysql.com/doc/connector-net/en/connector-net-tutorials-ssl.html
0547デフォルトの名無しさん
2015/11/03(火) 18:06:03.76ID:6ritcPOX0548デフォルトの名無しさん
2015/11/03(火) 18:29:46.19ID:VtUJC+iX>>537
意味不明に略したら自分も他人もわからなくなるから、略してはいけない。
誰もが知ってるような単語は、略式を使う。
0549デフォルトの名無しさん
2015/11/03(火) 18:44:00.86ID:/yUCkyPRつーか皆いい加減LINQ使おうよ・・・
0550デフォルトの名無しさん
2015/11/03(火) 19:27:35.29ID:LOZNcNC7自分はLINK禁止にされたから辛かった。
0551デフォルトの名無しさん
2015/11/03(火) 19:28:02.46ID:LOZNcNC70552デフォルトの名無しさん
2015/11/03(火) 19:39:28.03ID:VtUJC+iXむしろ、forとかwhile使うよりわかりやすいと思うんだが…
0553デフォルトの名無しさん
2015/11/03(火) 19:40:37.51ID:RYOZjHqX0554デフォルトの名無しさん
2015/11/03(火) 19:47:07.94ID:CJf+XPA2命令型の延長から来た人には理解できん類のもの
実際C#のlambdaシンタックスは初見からするとノイズが多すぎて、理解できないだろう
オブジェクト指向なのになんでここまで関数がでしゃばるのか
述語デリゲートが、なぜ普通のbooleanでダメなの?
っていらん疑問ばかりついてまわる
0555デフォルトの名無しさん
2015/11/03(火) 19:51:39.65ID:UfQouXyC0556デフォルトの名無しさん
2015/11/03(火) 19:57:46.67ID:Lrk43gMLそこにラムダ絡めちゃってさらに異質なもの認定してるだけ
0557デフォルトの名無しさん
2015/11/03(火) 20:05:19.20ID:56qTwYt/ありがとうございました。
0558デフォルトの名無しさん
2015/11/03(火) 20:07:11.40ID:sXl2Uj86ほかのアプリのクライアント領域を取得したいんですが
[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern bool GetWindowRect(IntPtr hWnd, out RECT lpRect);
こっちを使うとそれっぽい値がはいってるんですが
[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern bool GetClientRect(IntPtr hWnd, out RECT lpRect);
こっちを使うと 座標(0,0) しか入ってないんですよね…
原因に心当たりのある人いらっしゃいませんか?
よろしくお願いします
0559デフォルトの名無しさん
2015/11/03(火) 20:18:09.71ID:QAKXUKz2実はLINQとラムダ式は大いに関係がある、式ツリーの実装のために作られたようなものだし
それがなければ、無名デリゲートで十分だった
むしろラムダ型という用語にも関わらず関数型とは関係はなくはないが実質関係無いという印象
関数型が好きな人は、C#におけるこの用語は勘違いしやすいかもしれない
まぁ、哲学的に考えればの話だけど
0560デフォルトの名無しさん
2015/11/03(火) 20:25:04.88ID:UfQouXyCクライアント矩形だから位置は(0,0)に決まってますねー
親ウィンドウに対する相対位置を知りたいなら
GetWindowRectしてからMapWindowRectしないとー
0561デフォルトの名無しさん
2015/11/03(火) 20:30:37.38ID:sXl2Uj86Mapの仕方がよくわからないんですけど
とりあえず単独で使うだけではだめなんですね
もう少し調べてみます
ありがとうございました
0562デフォルトの名無しさん
2015/11/03(火) 20:30:43.03ID:UfQouXyC罠とかあるから習熟してから突っ込んで考えればいいんであってー
0563デフォルトの名無しさん
2015/11/03(火) 20:32:31.59ID:VtUJC+iX式ツリーのラムダ式とLINQのWhereとかで使われるラムダ式は、別物だと思う。
ラムダとか言ってるけど、所詮、デリゲートだし、シグネチャさえあえばメソッドを渡すこともできる。
() => x * 2 こういう表記の仕方をラムダ式と呼んでる程度でしかない。
0564デフォルトの名無しさん
2015/11/03(火) 20:53:44.50ID:QAKXUKz2内部的な型が違うんだよ int a; の a と 3 はどちらもint型だが、後者には定数という属性も内部的には付与されている
コンパイラを作る側の人は意識しているが、使う側の人には意識させないように作られている
ある種の自動変換が入っているんだ
ラムダ式をデリゲートとしてしようしようとすると、自動的にラムダ式についているCompile()メソッドが発動してデリゲート型に変換してしまう
0565デフォルトの名無しさん
2015/11/03(火) 20:54:59.02ID:HNCOBt+uありがとうございます。解決しました。
しかし、なぜDataRowCollectionクラスがIEnumerable<DataRow>の実装でないのか疑問ではあります。
まあ歴史的な理由だとは思いますが…。
(例えばDataRowCollectionクラス実装時はジェネリックという概念がなかったとか…)
0566デフォルトの名無しさん
2015/11/03(火) 20:56:16.62ID:56qTwYt/DataTable dt = new DataTable();
GridView1.DataSource = dt;
とやって、2次元のテーブルの中身をグリッドビューにEXCELの画面みたいに
出しているのですが、セルの中で改行させる方法が分かれば教えて下さい。
0567デフォルトの名無しさん
2015/11/03(火) 20:59:48.89ID:QAKXUKz2ジェネリックのDataSet欲しいね・・・
0568デフォルトの名無しさん
2015/11/03(火) 21:10:25.83ID:VtUJC+iXジェネリックができたのは、.NET 2.0。それ以前は、ジェネリックそのものがなかった。
DataRowCollectionあたりができたのは、.net 1.0だから当然、ジェネリックではない。
後からがIEnumerable<DataRow>ぐらい付け足せるだろうと思うかも知れないが、既存の古いコードを破壊しかねないという危険性がある。
非ジェネリックなものは、rows.OfType<DataRow>() でがIEnumerable<DataRow>に変換して利用するのが吉だろう。
0569デフォルトの名無しさん
2015/11/03(火) 21:25:41.32ID:Q+Hc78/Aすみません...
このプログラミングの実行順序?というか解説を
お願い致します..
0570デフォルトの名無しさん
2015/11/03(火) 21:32:28.64ID:VtUJC+iX断る。スレタイの言語名1000回読んで出直してこい。
0571デフォルトの名無しさん
2015/11/03(火) 21:36:42.56ID:Q+Hc78/Aすみませんでした
0572デフォルトの名無しさん
2015/11/03(火) 21:37:56.39ID:Qi78cw7wこれ見て再帰スゴイとか思う学生がいるとは思えない
0573デフォルトの名無しさん
2015/11/03(火) 21:41:06.36ID:QAKXUKz2死んでおけ
0574デフォルトの名無しさん
2015/11/03(火) 21:42:15.24ID:Q+Hc78/Aこの例を見ても再帰がよく分かりません...
0575デフォルトの名無しさん
2015/11/03(火) 22:07:18.95ID:UfQouXyC0576デフォルトの名無しさん
2015/11/03(火) 22:40:42.74ID:UVzGbDipこの程度は自分なりにでも解析をしてから分からないところだけを質問して欲しいがな。
0577デフォルトの名無しさん
2015/11/03(火) 22:42:31.39ID:/yUCkyPR0578デフォルトの名無しさん
2015/11/05(木) 22:45:40.69ID:6rpVQh8aインターフェイスクラスを実装した構造体クラスがあって、その構造体クラスのインスタンスをあるメソッドに渡すとします。
そのメソッドの仮引数の型はインターフェイスクラスにしておきます。
このときに、メソッドの仮引数が値渡しであればコンパイルエラーとならないのに、参照渡しにするとエラーとなる理由はなぜなのでしょうか?
0579デフォルトの名無しさん
2015/11/05(木) 23:10:16.20ID:ExWVN0qD構造体なのかクラスなのかはっきりせい
0580デフォルトの名無しさん
2015/11/05(木) 23:15:59.04ID:WQByrXLp0581デフォルトの名無しさん
2015/11/05(木) 23:17:05.85ID:JipnsoZF参照渡しはメソッド側で引数に値を代入して書き換えできる
同じインターフェイスを実装した別の型の値を代入される可能性がある
また、値型をインターフェイスにキャストするにはボックス化が必要なのでコピーが発生するから参照渡しは不可
インターフェイス通したいならジェネリックのwhere使う
0582578
2015/11/05(木) 23:56:44.30ID:6rpVQh8aすみません、構造体です。
まだあやふやな理解で申し訳ないです。
>>581
ボックス化というのがいまいちわかっていないですが、
値型を参照渡ししようとしてもコピーしないと出来ないということですか?
ジェネリックとは?ちょっと調べてみます。
ありがとうございます。
0583デフォルトの名無しさん
2015/11/06(金) 00:22:51.45ID:v3nYR+i3不可 → void Hoge(ref IComparable<int> cmp){}
可 → void Hoge<T>(ref T cmp) where T : IComparable<int>{}
0584デフォルトの名無しさん
2015/11/06(金) 00:31:22.76ID:dWA72Rvv構造体(struct)にもインターフェースは、指定可能。
すべての型は、object型として扱えるため、object型に代入可能で、構造体(値型)も当然、objectとして扱える。
object型というのは、言い換えればobjectクラスなので、objectは、参照型。
構造体など値型を参照型として扱うとき必要なのがボックス化と呼ばれるもの。
また、インターフェースも参照型なので、インターフェースとして受けてしまうとボックス化が発生する。
イメージ的には、 ボックス化されるとき、new object( 10 ) のような感じで値型をラップした新しいオブジェクトが作成されている。
void Foo( IHoge x ) のようなインターフェースを受け取るメソッドに値型を渡しても、Fooメソッドでは、別のオブジェクトになっているのでいくら書き換えたところで無意味。
値型でなく、最初からクラスとして作っておけば、そういう問題は起きないが構造体を使いたい場合、下記のように制約付きのジェネリックメソッドを使うと良い。
static void Foo<T>( ref T arg ) where T : IHoge {
arg.Value = 100;
}
こうすれば、ボックス化は、発生しないで、IHogeインターフェースのメンバーを呼び出すことが可能となる。
refは、参照渡しさせるために必要。
0585578
2015/11/06(金) 00:42:25.19ID:pjudYN7I教えていただいた通りに修正したらエラー解消しました。
詳細な解説ありがとうございます。
納得できました。
0586デフォルトの名無しさん
2015/11/06(金) 09:12:45.36ID:MQ0OQAytこんな感じにA.csproj → A.x86.dll A.x64.dll
0587デフォルトの名無しさん
2015/11/06(金) 12:16:37.98ID:955qm0wN0588デフォルトの名無しさん
2015/11/06(金) 12:19:39.17ID:dWA72Rvv0589デフォルトの名無しさん
2015/11/06(金) 15:32:24.63ID:guayBMf40590デフォルトの名無しさん
2015/11/06(金) 15:39:55.16ID:KrpwsfQjメインのプロジェクトではEFに直接関わるようなコードは一切書いていないのに
エラーが出て、どうやらApp.configをクラスライブラリのそれと同じように書き
EFもインストールしないといけないみたいですがなぜですか?
メインのコンソールアプリでは、
ClassLibrary1.Run();
としか書いていないのに
0591デフォルトの名無しさん
2015/11/06(金) 16:20:31.16ID:hUa1dWCfdllならAny CPUで良い気がするけどな
>>590
そのクラスライブラリがEF使ってるからだろ
0592質問者
2015/11/06(金) 19:15:27.36ID:n93wU3zkは何故できないの?
C#っておかしい
0593デフォルトの名無しさん
2015/11/06(金) 19:45:53.50ID:DdHE3j1N知らんけど
0594デフォルトの名無しさん
2015/11/06(金) 19:49:11.59ID:JLRIGyKNDB周りに中間テーブル勝手に作られたり
とかどうなんかなーって思うんだけど
0595デフォルトの名無しさん
2015/11/06(金) 19:49:47.56ID:H8/mSBf4mutabilityはクラス特性の一つにすぎない
0596デフォルトの名無しさん
2015/11/06(金) 19:52:12.27ID:O+3ivu6xテーブル管理をきっちりして、メンテナンスが面倒な糞長いクエリ作らないことさえ心がければ問題ないと思う
それが出来るなら何でもOKだろと言われたらそれまでだが
0597デフォルトの名無しさん
2015/11/06(金) 20:01:54.19ID:hUa1dWCfコードファーストで、プログラマがモデル変更したらDBレイアウト変わるとか
DB層とアプリ層と分離するような業務システムだとあり得ん
EFはコードファーストしかないわけじゃないけど
最近、既存DBからコードファーストとかいうわけわからんオプションも追加されたけど
EDM作らんで良いし、マッピングの自由度上がるから、これが結構いい感じだぞ
俺はこれをコードセカンドと呼ぶ事にしたw
0598デフォルトの名無しさん
2015/11/06(金) 20:02:50.21ID:Vl4FajojあとIntPtr(これは仕方ないか)
0599デフォルトの名無しさん
2015/11/06(金) 20:04:07.68ID:v3nYR+i3DBファーストなら中間テーブルは作られない(たぶん)
パフォーマンスに引っかからなければ採用していいと思う
0600デフォルトの名無しさん
2015/11/06(金) 20:07:22.09ID:v3nYR+i3ミュータブルなら配列があれば許されたかもね…
0601デフォルトの名無しさん
2015/11/06(金) 20:11:37.63ID:VIb2xLBBC#で配列を定数扱いしたければReadOnlyCollectionを使う。
0602デフォルトの名無しさん
2015/11/06(金) 22:35:43.69ID:ZOMBif/Uそのメンバのメンバもreadonlyにすることはできないんですか?
0603デフォルトの名無しさん
2015/11/06(金) 22:45:54.70ID:v3nYR+i3コレクションならIReadOnly〜インターフェースがある
0604デフォルトの名無しさん
2015/11/06(金) 23:10:20.05ID:lDi+bZZ1修飾子で指定するものじゃないと言ってんだろ
理解力が不足しているのか?
0605デフォルトの名無しさん
2015/11/06(金) 23:18:27.60ID:dWA72Rvvshield class Hoge {
public int Property1 {
get;
} = 10;
public int Property2 {
get;
} = 20;
}
0606デフォルトの名無しさん
2015/11/06(金) 23:25:34.03ID:ZOMBif/Uありがとうございます。使ってみます。
>>604
ちょっと調べたけどよくわかりませんでした。
久しぶりに会った友達に、おめぇずいぶんとミュータブルなぁーって使う感じでしょうか?
0607デフォルトの名無しさん
2015/11/06(金) 23:28:23.63ID:x7E/To5Iもうちょっとこの構文は何とかならなかったのかと思うな…
0608デフォルトの名無しさん
2015/11/06(金) 23:42:18.13ID:KrpwsfQjそこがよくわからないんです
クラスライブラリでしか使ってないEFが
なぜメインプロジェクトでもインストールして
App.configまで書き換えないといけないのか
例えば、zipライブラリやその他ライブラリを
ライブラリプロジェクトで使っていても
メインプロジェクトでそれらライブラリを参照しなくてもいけてます
同じように分離できないんでしょうか?
0609デフォルトの名無しさん
2015/11/06(金) 23:51:07.90ID:MmN1hyKFその説明は、誤解を生みまくる
const言っているなら C++ のアレを意識しているんだろうから
C++のmutableとゴッチャになる
0610デフォルトの名無しさん
2015/11/06(金) 23:55:31.99ID:MmN1hyKF書き換えに関する制御は基本的に期待しないほうが良い、というか諦めたほうが良いでしょう
当時constなど不要、高速化目的ならオプティマイザが頑張ればいいという考えが席巻していたから残念な事になってしまっている
目的は高速化じゃないといっても話聞きゃしない話聞かない回答者みたいなので一杯になってたからな
0611デフォルトの名無しさん
2015/11/06(金) 23:55:56.97ID:J1IjfUsvライブラリが特定の場所の特定のDBに紐付いてたら再利用性も柔軟性もクソもないだろ?
構成はアプリ側で指定するんだよ
0612デフォルトの名無しさん
2015/11/06(金) 23:59:22.58ID:/KOBRm1IModelクラスがツリーのデータを保持できるように定義されている場合、
class Model
{
public List<Model> Children;
public Model Parent;
}
ViewModelクラスはどのように作ればよいのでしょうか。
class ViewModel
{
public ObservableCollection<ViewModel> Children;
public ViewModel Parent;
}
ユーザーがアイテムを追加・削除した際の、VM〜M間でのChilrenのやりとりで良い方法が思い浮かばないのです。
0613デフォルトの名無しさん
2015/11/07(土) 00:03:09.47ID:HCtDVk7w0614デフォルトの名無しさん
2015/11/07(土) 00:05:43.30ID:mc1zorklそんなもんModelをそのまま公開すりゃいいよ
いちいちラップするのは無駄に複雑になるだけ
0615デフォルトの名無しさん
2015/11/07(土) 00:10:14.79ID:bqVTu3cR何に使いたいのでVMいるのかがわからない
0616デフォルトの名無しさん
2015/11/07(土) 00:37:06.17ID:rJMrVjho特定のDBには既にひも付けされてますよね?
Entityクラスを事前に静的に生成しているわけだし
特定の場所に関しては確かにそうですが
dbパスを渡すだけでいいはずなのになんでEF入れなきゃだめなんでしょ?
0617デフォルトの名無しさん
2015/11/07(土) 00:38:32.76ID:VdNkzOpuかといって毎回コピーしたら遅いし
0618デフォルトの名無しさん
2015/11/07(土) 00:47:30.53ID:3j5S0EXpインターフェイス通せばいいじゃない
>>612
選択したツリー項目毎に特定のVM表示したいの?
0619デフォルトの名無しさん
2015/11/07(土) 01:36:23.40ID:X2ab0wjOEF使うのに入れなくていいと思う理論がわからん
0620デフォルトの名無しさん
2015/11/07(土) 01:55:38.19ID:rJMrVjho実際に使うのはクラスライブラリ側だけだからです。
EFじゃなくて他のライブラリの場合は
メインプロジェクトに入れなくても動くのに
なぜEFだけ特殊なのかが知りたいんです
0621デフォルトの名無しさん
2015/11/07(土) 02:09:02.01ID:VdNkzOpuやっぱそうなるよねぇ
操作用のインターフェース作るの面倒だけど
0622デフォルトの名無しさん
2015/11/07(土) 03:22:43.92ID:X2ab0wjOそもそもほんとにメイン側でなにもしてないなら
実行時に必要なライブラリがそろってれば良いだけで、メイン側プロジェクトにEFの参照いらないけど?
別に特殊でもなんでもない
もしそんな前提があるなら、ASP.NETでEF使えなくなるじゃないか
0623デフォルトの名無しさん
2015/11/07(土) 03:28:58.48ID:rJMrVjho>>590
一行しか書いてないのになぜ参照がいるんですか?
0624デフォルトの名無しさん
2015/11/07(土) 05:33:11.29ID:cHn3VkC0クラスライブラリ側のapp.configを見てごらん
EFをインストールしたときに書き換えられた部分があるでしょ
そしてよーく考えよう
0625デフォルトの名無しさん
2015/11/07(土) 17:24:35.95ID:X2ab0wjO知らんがな
ソース全部晒してみろ
そういえば、エラー出るでどんなエラー出たか書かない奴の質問は答えるだけ無駄って誰かが言ってたな
0626デフォルトの名無しさん
2015/11/07(土) 17:54:38.72ID:1m+5NuQy消えゆく運命だろ
0627デフォルトの名無しさん
2015/11/07(土) 23:27:09.98ID:qRUcE/WB価値マイナス
0628デフォルトの名無しさん
2015/11/08(日) 00:28:50.73ID:QQOP8UEshttps://github.com/damienbod/SQLiteExamples
やってることはこれと同じです
これもメインプロジェクトでインストールしてます
メインプロジェクトのApp.Configを書き換えない場合
エラー
No connection string named 'MyEntities' could be found in the application config file.
これをぐぐると、App.Configをメインプロジェクトにコピペしろと回答がある
が、コピペしても、
error 0152: No Entity Framework provider found for the ADO.NET provider
with invariant name 'System.Data.SQLite.EF6'.
Make sure the provider is registered in the 'entityFramework' section of the application config file.
となる、つまりインストールしろってことなんだろうけど
0629デフォルトの名無しさん
2015/11/08(日) 02:51:20.55ID:tK1NbI7Kそれはアプリケーション定義ファイルを設定しろと言ってるだけで
EFをインストールしろとも参照設定しろとも言ってない
実際それじゃないが、メインアプリで参照設定なしでもアプリケーション定義ファイルを設定すれば動くのは確認した
(当然アセンブリは参照できるところに存在する必要はある)
なぜアプリケーション定義ファイルの設定が必要なのかは、EFのコンポーネントがデフォルトでそれを見に行くから
調べた感じではアプリケーション定義ファイルなしでも動くように出来そうだったけど、かなり手間かかりそうなので試してない
接続文字列だけなら簡単なんだが
0630デフォルトの名無しさん
2015/11/08(日) 03:54:18.19ID:QQOP8UEsMyDbLibraryを参照すれば、設定なしで複数のアプリで同じDBを簡単に
取得出来るようにしたかったんですが
できなくはないけど、面倒そうですね
んーやっぱりEF使わないでやったほうが後々楽かな
私事のためにお時間取らせてしまって申し訳ない
調べて頂いてありがとうございます
0631デフォルトの名無しさん
2015/11/08(日) 10:17:34.08ID:gApUJ0pc■質問1
下記のような構造体を配列にして内容を格納しています
(本来はもっとパラメータは多いですが簡略して3つにしてます)
struct test {
private int id; //100000以上からの6桁
private string name;
private int type;
public Test(int ID, string Name, int Type) {
id = ID;
name = Name;
type = Type;
}
}
この構造体配列の中から該当するIDを検索し、その添え字番号を得たいです
ForEachやwhileなどのループ内でIDを比較するしかないでしょうか?
「C# 構造体 検索」でぐぐってみたものの、
どのようにすればいいのかが見当もつきませんでした
■質問2
そもそも、このようなデータを構造体として用意するのは良いのでしょうか?
以上、よろしくおねがいします
0632デフォルトの名無しさん
2015/11/08(日) 10:48:27.07ID:S9+EFBLU0633デフォルトの名無しさん
2015/11/08(日) 11:23:47.79ID:pl2PgCRK(他言語の経験はあるので)
WPFはどのテキストを読んだらいいんだろう?
(開発にはLivetを使うといいと聞いたけど、
通常のWPFが分かっていること前提っぽいので、ちゃんと勉強しようと思ってます)
プログラミングWindows 第6版 上/下 が名著らしいけど、ストアアプリ特化で学習には向かない…?
このスレ的にオススメのテキストを教えてくれないだろうか
0634デフォルトの名無しさん
2015/11/08(日) 11:45:20.22ID:qE8APb0LPrismを使った方がよい
テキストに関しては知らない
数年前ならEssentialを薦めただろうが
いかんせん古すぎる
WPに対応する必要がないならストア向けのテキストも無駄だろうな
0635633
2015/11/08(日) 12:05:28.12ID:pl2PgCRKなるほど…今はPrismの方がいいのか。さんくす
テキストは…ストアアプリは作る気がないしなぁ
プログラミングWindowsのWPF XAML向けの解説は一応あるけど、
さすがにいちいち照らしあわせて読むのは大変そう
http://blogs.msdn.com/b/shozoa/archive/2014/07/24/using-programming-windows-chapter1.aspx
結局テキストをどうしたらいいのかわからんね
これを見つけたんだが、まだ去年のものだし古くもなく大丈夫だろうか?(同内容のkindle版もあり)
http://www.slideshare.net/okazuki0130/wpf45-38048141
0636デフォルトの名無しさん
2015/11/08(日) 12:49:12.21ID:cfidXKbmList<T>でFindeIndex(s => s.id == searchID)とか
でもidがprivateだな
検索数多いなら632が言うようにキーがIDの辞書作った方が速い
0637デフォルトの名無しさん
2015/11/08(日) 13:05:36.69ID:qxSNyhqmというエラーが出るしなあ
そして匿名型はコンストラクタを呼び出す手段がないので次のようなコードがコンパイルできない
http://ideone.com/QVNres
0638631
2015/11/08(日) 13:35:56.75ID:gApUJ0pc>>632
Dictionaryを詳しく調べてみます
データを格納後に、Dictionaryで別途索引を作る…というイメージですよね、たぶん
LINQも調べて勉強してみます
>>636
FindIndexも調べてみます
FindIndexは構造体のIDがprivateでなければ使えるのかな?
なお、件数はおそらく多くなりますので、Dictionaryでいこうと思います
>>637
構造体のつくり自体がそもそもまずいということですね
データを扱うのに構造体が良さそうだと思い使おうとしていたのですが、
まだまだ勉強不足のようで…勉強し直します
匿名型というのも分かってないレベルです
ひとまず頂いた回答・ヒントからいろいろ調べてやってみます
つまづいてどうしようもなくなったらまた質問に来ますので
その際はみなさんよろしくお願いします
0639デフォルトの名無しさん
2015/11/08(日) 14:11:47.01ID:IOiPLIcZwpfのことは忘れてFormsアプリを作るんだ
0641デフォルトの名無しさん
2015/11/08(日) 14:21:58.19ID:qxSNyhqmこの場合でも読み出し専用のプロパティは必要だけど
http://ideone.com/VQnbmB
0642デフォルトの名無しさん
2015/11/08(日) 14:22:03.96ID:qE8APb0L0643633
2015/11/08(日) 14:24:04.50ID:pl2PgCRKなるほどな…すまんが、それでもやっぱりWPFでいきたいわ
情報量が、と言うならC++でもやってろ、という話になるので
0644デフォルトの名無しさん
2015/11/08(日) 14:26:58.36ID:qxSNyhqm遅延評価でいいや
それとインデックスが不要なんだから(tt, n)でなくて(tt)でいい
適当に書いたからいろいろおかしかった
0645デフォルトの名無しさん
2015/11/08(日) 14:28:16.90ID:jwSrphbk0646デフォルトの名無しさん
2015/11/08(日) 14:48:07.12ID:t8ezhEA72010年くらいからほぼ更新されてない
開発者も減ってるし今更やっても無駄
そんなのやるくらいなら注目度高いElectronでもやったほうが100倍モチベーション上がるだろ
0647デフォルトの名無しさん
2015/11/08(日) 14:48:47.97ID:0dVpsRSuキーが決まってるならKeyedCollectionなんてのもある
構造体orクラスの問題は、大抵の場合、クラスの方がいい
構造体はnewのコストが問題になった時に試してみればいい
0648633
2015/11/08(日) 15:05:42.53ID:pl2PgCRKすまん。Electronも考えたんだが、いかにもWebアプリっぽい見た目と動作になるのが気持ち悪くてなぁ…
WPFは見捨てられたと言うのであれば、皆WindowsでGUIアプリを作るには何を使ってるんだろう?
0649デフォルトの名無しさん
2015/11/08(日) 15:10:08.20ID:qL6T2MEr.Net4.6で改良されてるし、どこまで本気か分からないけど最近微妙にやる気出してるようだよ。
http://blogs.msdn.com/b/dotnet/archive/2014/11/12/the-roadmap-for-wpf.aspx
0650デフォルトの名無しさん
2015/11/08(日) 15:14:56.34ID:b5oYWyCuんで結局、フォームから未だ抜け出せずにいる。
0651デフォルトの名無しさん
2015/11/08(日) 15:18:18.25ID:t8ezhEA7だいたいGUIアプリにしてもWindowsデスクトップに固執するような時代はとっくに終わってる
0652デフォルトの名無しさん
2015/11/08(日) 15:51:44.93ID:+dkH7XCP0653デフォルトの名無しさん
2015/11/08(日) 16:09:34.75ID:b5oYWyCu0654デフォルトの名無しさん
2015/11/08(日) 16:21:43.65ID:IOiPLIcZこのFrameworkの実態を表しているような気がするね
ネットにあるのは、Formsとは違うんです!っていう営業トークか
MVVMという概念がすごいんですってだけだろ
実際MVVMが必要になるような高度なアプリケーションなんてあるのか?
リアルタイムにデータを処理するにしてもイベントドリブンモデルのほうが簡潔で扱いやすい
MVVMはオブジェクト指向を「こじらせた」典型例だと思うんだよね
0655デフォルトの名無しさん
2015/11/08(日) 16:40:41.80ID:qWpIgAszいや英語では結構本出てるよ。
MVVMがウンコなのは同意するけどw
0656デフォルトの名無しさん
2015/11/08(日) 16:57:42.27ID:qE8APb0L僕の考えた最強の〜って感じ
引き算を覚えてくれ頼むから
WPFを除けば成功しているMVVMフレームワークはいくらでもあるし
設計センスの問題だと思う
0657デフォルトの名無しさん
2015/11/08(日) 17:02:03.13ID:t8ezhEA7標準フレームワークも用意されないWPFが流行るわけもない
マイクロソフトも普及させる気はないよ
ポーズだけ
Silverlight潰したりマイクロソフトは既に独自技術の普及を断念してる
代わってTypescript用意したりweb標準技術の採用に舵を切ってる
0658デフォルトの名無しさん
2015/11/08(日) 21:46:02.90ID:SGCCwhdkフォームは現時点でほぼ完成しているから何も変える必要ないんじゃないの?足りない機能ある?
0659デフォルトの名無しさん
2015/11/08(日) 22:53:03.65ID:X/vorztSFormsなら簡単に出来た事がものすごく手間だったり、
独自のUIが簡単にというが実際はとてつもなく面倒くさい。
datagridの配色変えるだけでも、
あの部分をどこで色を変えられるのか調べるだけで相当時間がかかる
0660デフォルトの名無しさん
2015/11/08(日) 22:54:49.77ID:b5oYWyCuフォームに関しては、今更機能追加されたところであれだし、現状維持してくれれば十分だな。
0661デフォルトの名無しさん
2015/11/08(日) 22:55:41.36ID:HlEs+VqN今はサードパーティー頼みだし。
MFCも、もうメンテナンスモードだろうと思ってた頃にFeaturePack出てきたんだから
ワンチャンあると信じたい。
0662デフォルトの名無しさん
2015/11/08(日) 22:58:52.76ID:l/gAevhWあの糞がそのまま放置されてるんだから、MSのやる気の無さがよくわかる
まあそもそもWPFは設計思想的にDataGrid的なものはListViewをカスタマイズして作るもんであって、
出来合いのDataGridをそのまま使うようないい加減なGUIでいいのならWPF使う必要は全く無いんだけどね
0663デフォルトの名無しさん
2015/11/08(日) 23:04:24.23ID:b5oYWyCuWPFほどまでは行かないにしろ、そこそこの分離は、可能だと思う。
いざとなれば、ビューを直接扱えるし、WPFみたいに変に手回ししなくていいしフォームのほうが楽。
0664デフォルトの名無しさん
2015/11/08(日) 23:26:11.25ID:X/vorztSいきなりC#とXaml両方まなぶのはきついんじゃない?
GUIを今後一切変更しないならFormsでいいだろうけど、
変更したくなった時、クソ面倒くさい
0665デフォルトの名無しさん
2015/11/09(月) 00:30:33.40ID:nH7Pt/o2WPFは覚えることだらけだな。
しかもMSDNのどこにも明示されてない仕様も結構あってかなり萎える。
0666デフォルトの名無しさん
2015/11/09(月) 00:42:01.77ID:YzX/XRY3>DataGrid的なものはListViewをカスタマイズして作るもんであって、
このカスタマイズする前に大量のオブジェクトの前に力尽きる人が多かったから
WPFは流行らなかったんだろうな
オブジェクト指向の継承って結構早い段階から使うのやめとけ
って言われてたと思うけどwpfって継承地獄なんだよなあ
0667デフォルトの名無しさん
2015/11/09(月) 01:51:51.42ID:q+BDOfSy一般論としてそんなこと言われてたっけ?
0668デフォルトの名無しさん
2015/11/09(月) 03:56:53.75ID:m77m/g5Hリファクタしたら、XAMLだけ手作業修正になったから
今は、ちゃんと連動してるんだろうか?
していたところで、あんだけ複雑で、しかも機能的にフォームから浮いていると移行する気にはなれないけど
0669デフォルトの名無しさん
2015/11/09(月) 04:06:23.65ID:m77m/g5H同感、WPFからATL臭がする
これからはWPFだといっている人は何見て、WPFが流行っていると思っているのだろうか?
0670デフォルトの名無しさん
2015/11/09(月) 08:53:11.53ID:AkXykSSl0671デフォルトの名無しさん
2015/11/09(月) 09:23:03.24ID:eW5XCVAC一芸に秀でていれば使えないこともない人間とは違うんだよ
フレームワークは全体のバランスが求められる
0672デフォルトの名無しさん
2015/11/09(月) 12:09:04.18ID:6wZmioGw適してれば(=開発工数を抑えられるならば)、どんなんだって使うことはあるし。
ここで声高に否定することに意味があるとは思えん。むしろなにか作為でもある?
0673デフォルトの名無しさん
2015/11/09(月) 12:24:46.82ID:7FJWPJQr工数削れるよ
0674デフォルトの名無しさん
2015/11/09(月) 12:30:10.88ID:eW5XCVAC頭悪いんじゃねえのか?
0675デフォルトの名無しさん
2015/11/09(月) 12:35:57.06ID:EOVCHtBm発狂するまでXAML書き続けて死ね
0676デフォルトの名無しさん
2015/11/09(月) 13:09:55.63ID:6wZmioGw0677デフォルトの名無しさん
2015/11/09(月) 13:22:50.09ID:eW5XCVACクソでも漏らしそうなのか?
漏らすなよ、ただでさえ臭いんだからな
0678デフォルトの名無しさん
2015/11/09(月) 13:31:13.13ID:6wZmioGw0679デフォルトの名無しさん
2015/11/09(月) 16:23:18.75ID:m77m/g5H作為とか特にないけど、俺の知っている業界の範囲でWPFを使っている所なんてないし
一時使っていたところも全部切り上げてFormsに戻ったからな
誰が使っているんだ?って思って書いてみた
0680デフォルトの名無しさん
2015/11/09(月) 16:25:52.00ID:m77m/g5Hシステムが大規模になってから、さあ元に戻ろうとかいう話になると地獄みるでw
0681デフォルトの名無しさん
2015/11/09(月) 18:25:32.73ID:s3Itz59O0682デフォルトの名無しさん
2015/11/09(月) 19:32:07.70ID:YzX/XRY3誰も助けられないエリアに人が立ち入ろうとしたら全力で止める
それは時間の無駄と戦い続けてきたICT分野の精神そのもの
0683デフォルトの名無しさん
2015/11/09(月) 20:45:05.97ID:XHl8ePvc0684デフォルトの名無しさん
2015/11/09(月) 20:47:24.37ID:Z/Tj9+xS0685デフォルトの名無しさん
2015/11/09(月) 20:48:06.82ID:aHPhV6ijヘルスバーグ監修だしな
あれはC#と違ってGoogleのAngular2に採用されて正真正銘の世界標準になった
0686デフォルトの名無しさん
2015/11/09(月) 20:49:00.07ID:Kluqtjpy0687デフォルトの名無しさん
2015/11/09(月) 20:57:32.51ID:Kluqtjpy空前絶後究極醜悪仕様のjavascriptのせいもあるが、
コードを書いてて幸せを感じられる。
0688デフォルトの名無しさん
2015/11/09(月) 21:17:06.11ID:HVtjB7Nt0689デフォルトの名無しさん
2015/11/09(月) 23:52:05.55ID:xUV9On1gすべてのイベントがコマンドでできたらなー
トリガー?イベントを言い換えただけじゃないか
ビヘイビア?そこまでして必死に分離する必要あるのか?
それに物理的に分離してても、特定のViewに意味的に依存したコードに変わりないよね
だったらイベントでいいじゃない
とにかくMVVMの強迫観念が付きまとう
オシャレなGUIもいらない
もっさり
情報がない
調べる時間が勿体無い
Xamlとコードを行ったり来たりが面倒くさい
フォームはイベントハンドラだらけ、データバインド面倒ってだけかな
0690デフォルトの名無しさん
2015/11/10(火) 00:37:56.86ID:TRBM8DsG流行ってない上に目玉が需要のないWindowsストアだからお先真っ暗
MFCと同レベルの状況だよ
そのなのやる暇あったらTypescriptとNode.jsをやれ
Visual Studio CodeはElectronで作られてるしNode.jsデバッガ標準装備だしMSも舵をきった
Web標準技術路線の流れは止まらんよ
0691デフォルトの名無しさん
2015/11/10(火) 01:49:09.88ID:Ovp34esS0692デフォルトの名無しさん
2015/11/10(火) 01:54:38.52ID:5g3VdvzW0693デフォルトの名無しさん
2015/11/10(火) 02:33:43.83ID:fx55niMq0694デフォルトの名無しさん
2015/11/10(火) 04:07:57.25ID:Vbdvj8E0おっさん全然離れないし
WPFの絶望感はなんともかんとも
古い人は移行しないし、新しい人は来ないし、ストアとか誰が使うんだよって感じだし
やりたきゃ、素直に別途スマートフォンに特化したOS作りゃいいのにね
0695デフォルトの名無しさん
2015/11/10(火) 05:05:14.87ID:x1SFUzCzスクレイピング、zip再圧縮、画像加工、ファイル移動、ファイルリネームなど
これからそれぞれ自分用に作っていこうと思ってる
0696デフォルトの名無しさん
2015/11/10(火) 05:24:29.79ID:Vbdvj8E00697デフォルトの名無しさん
2015/11/10(火) 07:03:54.72ID:ysgs5SCxzipはそのまんまzipコマンド
画像加工はimagemagick
全体の制御やファイル操作はperl
0698デフォルトの名無しさん
2015/11/10(火) 11:39:52.84ID:mVStRMDa0699デフォルトの名無しさん
2015/11/10(火) 13:27:08.88ID:Y54LX3ro0700デフォルトの名無しさん
2015/11/10(火) 15:30:35.44ID:zPPOQadDhttps://msdn.microsoft.com/en-us/library/windows.devices.bluetooth.genericattributeprofile.gattdeviceservice.aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-1
0701デフォルトの名無しさん
2015/11/10(火) 18:12:09.50ID:jCBnlrqE0702デフォルトの名無しさん
2015/11/10(火) 21:42:14.52ID:96BnYR0WIEnumerable<T>を実装したクラス(もしくはオブジェクト)のことは何と呼べばいいのでしょうか?
列挙子?それともコレクション?
どちらも微妙に違う気がするので、質問させていただきました。
0703デフォルトの名無しさん
2015/11/10(火) 21:46:42.28ID:ysgs5SCx順番を意識する場合は明示的に「要素のシーケンス」と呼んだりすることもある
0704デフォルトの名無しさん
2015/11/10(火) 22:03:45.37ID:IudFs22n使いこなせてないだけ。というか何か誤解してる。
使いまわししない場面でビヘイビアやトリガーを無理して使う必要ない。
0705デフォルトの名無しさん
2015/11/10(火) 22:05:22.32ID:96BnYR0Wコレクションにします。
0706デフォルトの名無しさん
2015/11/10(火) 22:13:49.61ID:mVStRMDa影響されやすいにもほどがある
0707デフォルトの名無しさん
2015/11/11(水) 00:11:06.49ID:Roxx949ghttp://japan.zdnet.com/article/35073153/
また、Infinumは開発時の経験から、
Androidアプリのレイアウトで用いられるXMLの使われ方が、iOSで用られるWYSIWIGによるアプローチ
ほど効率的でない点を指摘している。
まさにこれ、xamlの不利な点もこれに同じ
対してiOSはformsの発展系みたいなシステムだから即効作れる
0708デフォルトの名無しさん
2015/11/11(水) 00:21:31.22ID:/+peIgnx>>703
要素のシーケンス?
IEnumerable<T>は列挙される要素の順序なんて保障しないし
列挙される要素を返すオブジェクトの事だろ
要素でもないしシーケンスでもないじゃないか
0709デフォルトの名無しさん
2015/11/11(水) 00:33:42.89ID:1POahPwI0710デフォルトの名無しさん
2015/11/11(水) 00:35:00.27ID:hQ+Ng6ni混乱の元
0711デフォルトの名無しさん
2015/11/11(水) 00:36:20.71ID:hQ+Ng6niと、話が通じない流れはこうして始まる
0712デフォルトの名無しさん
2015/11/11(水) 00:39:46.19ID:1POahPwI0713デフォルトの名無しさん
2015/11/11(水) 00:45:36.61ID:/+peIgnxMSの用語で、列挙で返されるものをシーケンスと呼んでいるところはあるけど
IEnumerable<T>実装クラスのことをシーケンスと呼んでるところなんて無いだろ
0714デフォルトの名無しさん
2015/11/11(水) 00:47:40.91ID:hQ+Ng6ni0715デフォルトの名無しさん
2015/11/11(水) 00:59:29.52ID:2vpVS7Y/0716デフォルトの名無しさん
2015/11/11(水) 00:59:45.55ID:jhfL3S8B0717デフォルトの名無しさん
2015/11/11(水) 01:04:34.29ID:qdWTE3pv使いたいけど、itemXが何を指すのか明示し辛くて毎回クラス作る羽目になる
0718デフォルトの名無しさん
2015/11/11(水) 01:13:37.70ID:MPuvgpwOC# 7.0でそこらへん改善しようという動きはあるが、現状だと無理だな。
0719デフォルトの名無しさん
2015/11/11(水) 02:15:32.79ID:J1zmvVNV言いたいことは分からんでもないが列挙で返されるものは要素であってシーケンスじゃないよw
ニュアンス的には、イテレーターやクエリ式みたいにIEnumerable<T>を実装したクラスであるかのようにふるまう
何者かのことをシーケンスと呼んでるようにも感じるけど、機能的に等価なんだから同じでしょ。
0720デフォルトの名無しさん
2015/11/11(水) 02:24:54.15ID:/+peIgnxIEnumerable<T>で返される集合がシーケンス、その構成物が要素
IEnumerable<T>そのものは要素でもシーケンスでもない
まあ仮に、IEnumerable<T>そのものがシーケンスと呼ばれるとしても
IEnumerable<T>実装クラスはシーケンスじゃないし
0721デフォルトの名無しさん
2015/11/11(水) 02:27:02.08ID:dpUw/w5GだってIEnumerableとして使うわけだし
もと質問者の求める答えとはちょっと違うか・・・
0722デフォルトの名無しさん
2015/11/11(水) 04:08:25.76ID:MPuvgpwO「○○のコレクションを返します。」だと、List<T>とか配列のようなものが返されるイメージだし、「○○のシーケンスを…」だと違和感が残る。
0723デフォルトの名無しさん
2015/11/11(水) 05:06:28.14ID:FnAxvR+KEnumerableでも使えるのはGetEnumeratorでEnumerator取ってるからですか?
0724デフォルトの名無しさん
2015/11/11(水) 10:46:36.52ID:MPuvgpwO0725デフォルトの名無しさん
2015/11/11(水) 17:51:33.59ID:jH4gdhBC例えば、下の文字列の
「ABCD<a>123</a>EFG」
の中から、<a>と</a>に囲まれた部分だけを取るという事がしたいのです。
0726デフォルトの名無しさん
2015/11/11(水) 17:55:09.09ID:DUfHt6hF0727デフォルトの名無しさん
2015/11/11(水) 17:55:24.62ID:h0434h880728デフォルトの名無しさん
2015/11/11(水) 18:08:23.13ID:Usz+Er1r0729デフォルトの名無しさん
2015/11/11(水) 18:20:02.61ID:+wF1gX1q立て続けに素晴らしい連体感だなww
0730デフォルトの名無しさん
2015/11/11(水) 18:20:11.07ID:jH4gdhBC最終的にしたいのは、大きめのファイルをFile.ReadLinesを使って読み込み、その中から特定の文字列を取りたいのです。
File.ReadLinesでLINQを使って(正規表現併用でもして)抽出できないのかと、思案してる所です。
0731デフォルトの名無しさん
2015/11/11(水) 18:23:29.23ID:87RveuhTまずそこから間違ってる
0732デフォルトの名無しさん
2015/11/11(水) 18:40:07.71ID:YDOXgbvnみたいなのはどうする?
0733デフォルトの名無しさん
2015/11/11(水) 18:53:04.03ID:jH4gdhBC巨大なファイル内にある特定の文字を取りたくて、File.ReadLinesを使おうと思ったのです。
ちなみに、これを使う事になったのは↓のサイトの処理速度を見てこれは使えそうと思いました。
ttp://devlights.hatenablog.com/entry/20101116/p2
>>732
<a>〜</a>の組み合わせは今のところ一つだけを想定しています。
0734デフォルトの名無しさん
2015/11/11(水) 19:05:23.62ID:MPuvgpwOvar urls = File.ReadLines( @"hoge.txt" )
.Where( x => !string.IsNullOrWhiteSpace( x ) )
.Select( x => Regex.Match( x , "<a href=\"(?<url>.*?)\".*?>(?<text>.*?)</a>" , RegexOptions.IgnoreCase ).Groups["url"]?.Value )
.Where( x => !string.IsNullOrWhiteSpace( x ) );
みたいにすれば取り出せるだろうけど
0735デフォルトの名無しさん
2015/11/11(水) 19:21:42.43ID:jH4gdhBCソース有難うございます。
まだ、不明な点がありますが調べてみます。
0736デフォルトの名無しさん
2015/11/11(水) 19:35:10.88ID:hQ+Ng6ni0737デフォルトの名無しさん
2015/11/11(水) 19:36:07.54ID:ZERl/AOHReadLinesは遅延評価だからReadAllLinesとは違って巨大なファイルでも効率いいよ
0738デフォルトの名無しさん
2015/11/11(水) 19:40:57.26ID:MPuvgpwOすまん、ああ、それと勘違いしてた…
0739デフォルトの名無しさん
2015/11/11(水) 19:41:01.76ID:YDOXgbvn0740デフォルトの名無しさん
2015/11/11(水) 19:46:45.62ID:MPuvgpwO0741デフォルトの名無しさん
2015/11/11(水) 20:06:32.47ID:je1SKr0C実機に触ったことがないのでよくわからんのですが、
Windows8やWindows10あたりが入ってるタブレット端末なら作ったWindowsFormのアプリも
使えますでしょうか?(画面サイズを考慮して作るのは当然として)
それともストアアプリとしてじゃないと入れられなかったりするんでしょうか
0742デフォルトの名無しさん
2015/11/11(水) 20:15:23.36ID:MPuvgpwO特に問題なく動作可能。
ただ高dpi環境とかで動かすと残念なことになるかも知れないけど
0743デフォルトの名無しさん
2015/11/11(水) 22:32:02.21ID:WW0Z/7Lvスレタイにはちゃんと
(初心者用)
と書かれているよな
0744デフォルトの名無しさん
2015/11/11(水) 23:20:47.01ID:hQ+Ng6niLINQで文字列処理とか、Formでモバイル系とか
0745デフォルトの名無しさん
2015/11/11(水) 23:55:46.17ID:2kBONmlk0746デフォルトの名無しさん
2015/11/12(木) 00:25:57.38ID:b15uPX390747デフォルトの名無しさん
2015/11/12(木) 02:25:12.08ID:NUMUMJ+Dたとえばnew{Name, Kokugo, Sansu, Rika, Shakai}みたいなクラスを作れる成績表ファイルだったらFile.ReadLinesでLINQが有効
>>734のやりかたなら普通にforeachしたほうがわかりやすいと思う
var list = new List<string>();
foreach(var line in File.ReadLines( @"hoge.txt" )){
if(!string.IsNullOrWhiteSpace(line)){
var str = Regex.Match(line , "<a href=\"(?<url>.*?)\".*?>(?<text>.*?)</a>" , RegexOptions.IgnoreCase ).Groups["url"]?.Value;
if(!string.IsNullOrWhiteSpace(str)) list.Add(str);
}
}
0748デフォルトの名無しさん
2015/11/12(木) 07:56:05.65ID:Los5n9AY余計な世話を働くな
0749デフォルトの名無しさん
2015/11/12(木) 07:58:25.66ID:FwVQMCtV0750デフォルトの名無しさん
2015/11/12(木) 08:03:54.52ID:dubRMvMUこのケースは実質的には
行の集合→フィルタ→変換→フィルタ→結果の集合
という要素ごとに独立な集合操作なのでLINQを使うのはおかしくはない
0751デフォルトの名無しさん
2015/11/12(木) 09:27:42.54ID:b15uPX390752デフォルトの名無しさん
2015/11/12(木) 17:10:09.52ID:2y0wDvFaforeach使ったら遅延の意味ないし
さらに新たにlist作ってるのが古臭い
0753デフォルトの名無しさん
2015/11/12(木) 18:06:53.36ID:sljIQlRZ?
0754デフォルトの名無しさん
2015/11/12(木) 19:38:54.77ID:Ky5LrglXちなみに同一アセンブリ内からしか呼び出ししてないのになぜかASP.NETでWeb参照作ってSQL Serverと接続させてる元開発者の意図が読み取れないんだけど・・・
0755デフォルトの名無しさん
2015/11/12(木) 19:45:39.77ID:EC9THrMO今となってはEFだからとコードファーストにする必要も無く、既存のDBから作れるし別に問題ないんじゃね
動作環境を4.5.2にしないと来年早々にサポートが切れることぐらいか
0756デフォルトの名無しさん
2015/11/12(木) 20:05:38.85ID:yYqeH5aPそれならforeach使おうが、遅延評価されるやろ。
0757デフォルトの名無しさん
2015/11/12(木) 20:18:02.90ID:sljIQlRZ0758デフォルトの名無しさん
2015/11/12(木) 20:58:20.79ID:VAIEdV8u0759デフォルトの名無しさん
2015/11/12(木) 21:23:02.20ID:cKAT5bUnすぐ片付けますので。
0760デフォルトの名無しさん
2015/11/12(木) 22:04:08.00ID:Ky5LrglXいやどっちみち既存DB使うからデータベースファーストなんだけど、SqlCommandじゃなくてLINQ to Entity使いたいからEFなんだよ
0761デフォルトの名無しさん
2015/11/12(木) 22:07:54.82ID:EC9THrMO何が言いたいのかわらかないけど、使いたいなら使えとしか・・・
0762デフォルトの名無しさん
2015/11/12(木) 22:14:13.84ID:VAIEdV8u0763デフォルトの名無しさん
2015/11/12(木) 22:27:48.52ID:AjxvVfcS今なら既存DBからコードファーストというオプションが存在するんだぜ
LINQ使いたいだけならLINQ to DataSetって方法もあるぞ
既存コードの量にもよるけど、既存コード全部修正してまでEF導入するほどのメリットがあるのか
あるいはEFとADO.NET直接や型付きデータセットを混在させるのは容認されるのか
0764デフォルトの名無しさん
2015/11/12(木) 22:38:34.20ID:2y0wDvFa本当に分からないの?
すべての要素を実体化させてるからなんだけどね。
0765デフォルトの名無しさん
2015/11/12(木) 23:05:26.00ID:+tTEt6jTごめん
俺もわからん
解説plz
0766デフォルトの名無しさん
2015/11/12(木) 23:08:48.25ID:qQwabUEl非同期処理でUIにアクセスするさいにBeginInvokeを使っているのですが
回転数が少なく条件にマッチしない場合BeginInvokeの方が先に終わってしまうのか
labelの方は100000と書いてあるのに終了のメッセージボックスがしばらくしないと出ない感じに
なってしまいます。。
Taskスタートのつもり
{
for (j = 0; j <10000; j++)
{
メソッド1(j);
bool flg=メソッド2(j);
if (flg) this.Invoke(new Action(() => HITLabel.Text = "hiT"));
this.BeginInvoke(new Action(() =>進行Label.Text=j+1.ToString()));//
}
//ループ終了
});
MessageBox.Show("完了せり");
とこんな感じでかなりあれなんですが・・・
Invokeにすれば同期できるんですが終了待ちする関係で
時間が掛かってしまい3秒くらい追加になってしまうようです。
BeginInvokeを使いループ終了と同期させる方法がないでしょうか?
200万ぐらいから同期するみたいなんですが。
0767デフォルトの名無しさん
2015/11/12(木) 23:13:38.94ID:Dz+qxRLQ遅延評価させる意味というか目的を教えてほしい。
0768デフォルトの名無しさん
2015/11/12(木) 23:19:26.88ID:dubRMvMUそれjが一つだから進行Label.Textは最初から全部10001になるだろ
BeginInvokeは引数を渡せるオーバーロードがあるから進捗情報はそっちで渡せ
jをループ内で宣言し直す方法もあるけど、
コンテキストをまたがって変数を共有するのはトラブルの元なので極力避けることをお勧めする
0769デフォルトの名無しさん
2015/11/12(木) 23:29:31.65ID:qQwabUElアドバイスありがとうございます。
jの件仰るとおりでした
それと肝心のBeginInvokeですがつまりActionではなく
デリゲードを生成してそちらに引数を渡せば解決するということでしょうか?
0770デフォルトの名無しさん
2015/11/12(木) 23:35:00.45ID:yYqeH5aPTask.、async / awaitを使うべき。
0771デフォルトの名無しさん
2015/11/12(木) 23:45:09.01ID:qQwabUEl仰る通りだと思うんですがasync/awaitは4.5?でしたか。環境が駄目でorz
0772デフォルトの名無しさん
2015/11/12(木) 23:52:28.74ID:FwVQMCtV遅延評価は最後のforeachのためだぞ
0773デフォルトの名無しさん
2015/11/13(金) 00:05:42.71ID:0XMaJRAY0774デフォルトの名無しさん
2015/11/13(金) 01:32:54.47ID:mVyjF6P70775デフォルトの名無しさん
2015/11/13(金) 03:14:28.15ID:fOj/PJch状況にもよるけど、別スレッドでファイルとかに逐次書き出すとかが理想
0776デフォルトの名無しさん
2015/11/13(金) 07:05:08.20ID:iH7KAiTOhttp://blog.xin9le.net/entry/2012/12/26/125214
4.0でも使えないわけじゃない
0777デフォルトの名無しさん
2015/11/13(金) 21:50:19.26ID:WHtd9CIGprivate delegate void デリゲート(int n);
private void 進行表示なのよさ(int n)
{
進行Label.Text=n.ToString()));//
}
デリゲート デリゲート進行なのよメソッド= new デリゲート(進行表示なのよさ);
this.BeginInvoke(デリゲート進行なのよメソッド, new object[] { j });
と渡しましたけど無事に死亡確認しました。orz
変らず・・・・
なんか5万でやったら処理が間に合わないのかデッドロック
>>776さん
あっライブラリーを別にインストールしてやる感じですか。
ありがとうございます。
0778デフォルトの名無しさん
2015/11/13(金) 21:56:43.98ID:qRfCc0Iv特別、ref とか outを使いたいとかじゃない限り、Action<T>、Func<T> を使うべき。
0779デフォルトの名無しさん
2015/11/13(金) 22:05:31.10ID:WHtd9CIGあっ宣言しなくても省略できるんですか・・
void Action<T>(T obj)・・これは知らなかったです・すいません。
Tにメソッドを入れて引数にT objを指定する感じですかな。
どうにも疎くて;;
0780デフォルトの名無しさん
2015/11/13(金) 22:11:25.68ID:v46Ke5nq0781デフォルトの名無しさん
2015/11/13(金) 22:16:22.98ID:qRfCc0IvTask.Factory.StartNew( () =>
{
// 別スレッド
Thread.Sleep( 3000 ); // 重い処理のつもり
return 1000;
} ).ContinueWith( task =>
{
// UIスレッド
this.label.Text = task.Result.ToString();
} , TaskScheduler.FromCurrentSynchronizationContext() );
0782デフォルトの名無しさん
2015/11/14(土) 00:12:23.08ID:PWAfQw+v非UIスレッド側からUIスレッドにイベントを通知したい、なんてケースもあるので万能じゃないけどね。
0783デフォルトの名無しさん
2015/11/14(土) 00:28:17.73ID:zC8KxVmnそういうのは、Rx使ってる。
0784デフォルトの名無しさん
2015/11/14(土) 00:45:14.09ID:JMgFPTs6viewに複雑のユーザー定義クラスを渡す時ってカスタムbinderつくるしかない??
例えば検索フォームと一覧で構成される画面で
検索フォームmodelと一覧modelをバインディングするみたいな。
0785デフォルトの名無しさん
2015/11/14(土) 01:45:16.57ID:J/xjBQ6pclass 俺モデル
{
public 検索フォームmodel M1;
public 一覧model M2;
}
これをモデルとして渡せばOK
0786デフォルトの名無しさん
2015/11/14(土) 02:49:03.10ID:JMgFPTs6view側で
@TextBoxFor(m => m.M1.Unko)
@TextBoxFor(m => m.M2.Chinko)
みたいなのをformで送ったが、
ActionメソッドをIndex(俺モデル myModel)
としても、値とってこれないんだよね
0787デフォルトの名無しさん
2015/11/14(土) 02:56:01.24ID:T0Fy32Ow駄目でした;;
既にtaskは使っていて
var task1 = Task.Factory.StartNew(() =>
これの終了に別のタスクで繋いで終了表示をしてるんですが
781の兄者のやり方のとおりに子タスクを設定してみたんです。
したら親タスクのつなぎタスクに繋がらないときがあるみたいで;;
なんで繋がなくなる時がある上に終了してるのに
終了ウィンドウがしばらくしないと出ないのか・・
きっと妖怪のせい・・
0788デフォルトの名無しさん
2015/11/14(土) 11:18:55.84ID:10oOQI9U0789デフォルトの名無しさん
2015/11/14(土) 13:23:53.12ID:m53r0/yX0790デフォルトの名無しさん
2015/11/14(土) 16:57:33.34ID:g6rNXfjzgetter setterつけたらいけたわ。
0791デフォルトの名無しさん
2015/11/14(土) 18:56:20.98ID:OxpghztZこういうコードがあるとします
public class Aa{
int i;
string b;
public Aa(int iH,string bH){
i=iH;
b=bH;
}
}
Aa [] aa=new Aa[]{
new Aa(10,"aaa"),
new Aa(20,"bbb")
};
これでコンパイルは通るのですがこの後半に書かれたクラスの配列の初期化が
なんとも気持ち悪くて仕方がありません
これから何百行もクラスの初期化のコードを書くつもりなのでnewとかAaとかが無意味に並んでる辺りが
非常に醜いと思います
もっと初期化を簡略化する書き方はないでしょうか?
0792デフォルトの名無しさん
2015/11/14(土) 19:13:53.28ID:nPG81Nq10793デフォルトの名無しさん
2015/11/14(土) 19:15:20.30ID:Ldro2YxRファイルに出せ
0794デフォルトの名無しさん
2015/11/14(土) 19:16:41.03ID:x0D1OM5mそれが無駄だと全然思わないんだけど、
static Aa[] ToAaArray(params string[] args){...}
みたいなメソッドでも用意するとか。
0795デフォルトの名無しさん
2015/11/14(土) 19:21:51.68ID:0hbObyK2はワンセットになりつつある
0796デフォルトの名無しさん
2015/11/14(土) 19:22:29.23ID:OxpghztZ>>793
ファイルに出すというのはテキストファイルを別に作って読み込むという方法でしょうか?
それも考えたんですけどそれだとテキストファイルを作る時引数の入力補完が効かなくなって
かえって間違えやすくなると思うんですけど
>>794
入力補完を利かすため引数のデータをデータ型通りの形で並べたいんですけどどうしたらいいですかね
0797デフォルトの名無しさん
2015/11/14(土) 19:35:41.52ID:zC8KxVmnvar aa = new [] { new Aa( 10 , "aaa" ) , new Aa( 20 , "bbb" ) };
0798デフォルトの名無しさん
2015/11/14(土) 19:39:17.01ID:OxpghztZ外側減らしたって意味無いすよw
中が圧倒的に多いんだから
0799デフォルトの名無しさん
2015/11/14(土) 19:44:59.12ID:zC8KxVmnもしくは、partial class を作って別ファイルにメソッドを隔離しておくか。
0800デフォルトの名無しさん
2015/11/14(土) 20:08:15.99ID:nPG81Nq1入力補完?
入力候補が決まってるなら、EXCEL でも使ってセルの入力規則のリストでも利用すればすむ事じゃん。
こっちの方が列で管理出来るから引数の順番とか間違えなくて(その意味では)便利だろ。
別にお前に限ったことじゃないけど、条件の後出しはよせ。正直ムカつく。
0801デフォルトの名無しさん
2015/11/14(土) 20:10:22.93ID:FGqqqIfBテキストファイル読み込んで作るか、もしくはnewをいっぱい書くのが普通だと思うけど
それでも無理やり減らそうと考えるならこれかな。
var aa = new List<Aa>();
var elements1 = new[] { 10, 20, 30 };
var elements2 = new[] { "aaa", "bbb", "ccc" };
for(int i = 0; i < elements1.Length; i++)
{
aa.Add(new Aa(elements1[i], elements2[i]));
}
これだとタプルを分解して書かないといけないから不満が残るけど
(10, "aaa")のような形でインスタンスを作れない以上どうしようもない気がする。
最近C#触っていないからもっといい方法があるかもしれないが。
0802デフォルトの名無しさん
2015/11/14(土) 20:18:02.62ID:OxpghztZ基本的にunityのmonodevelopで完結させたいんだよね
monodevelopは使い方も知ってるし
>>801
それだと例えば1番目なら1番目の項目の書いてる場所がバラバラになってしまって
とても管理出来そうにない
みなさんありがとうございました
自分が今まで致命的な勘違いをしてた訳じゃないとわかっただけでも収穫でした
newとクラス名連打で作りたいと思います
0803デフォルトの名無しさん
2015/11/14(土) 20:23:51.44ID:vsCbl3R/オブジェクト作成時に値チェックかけて、
整合性が保証されてる状態で書き出せばいいだろ。
0804デフォルトの名無しさん
2015/11/14(土) 20:27:37.98ID:OxpghztZそれだと実行させなきゃエラーを出せない
unityのmonodevelopは初期化の時引数の型が間違ってたら書いたその場でインフォメーションしてくれる
0805デフォルトの名無しさん
2015/11/14(土) 20:57:41.24ID:Qc99f8i6単体テスト書けば良いんじゃないの。書いたその場で、とは行かないが。
0806デフォルトの名無しさん
2015/11/14(土) 21:00:39.59ID:vsCbl3R/モデルのオブジェクト(メンバの型)を経由するのにどう引数間違える可能性あるんだよ?
0807デフォルトの名無しさん
2015/11/15(日) 00:43:58.51ID:PNJd8cmYvar bullets=Enumerable.Range(0,100).Select(i=> new {Id=i,Num=10,Str="100" });
0808デフォルトの名無しさん
2015/11/15(日) 01:30:33.23ID:8pwk8L+v混迷極まってるな、MS工作員にはモバイル用は別OSにするって発想はでないのかね?
別に、コアコードは変わる訳じゃなかろうに、上っ面の部分だけモバイル向きに作り替えて
アップデートのタイミングをそれぞれに調整すれば良いだけ
モバイルで流行らないのは、単にWindows8に商品力が無いだけだ
デスクトップ向きはWindows7に戻しちまえばいいのに
Windows10とか誰も欲しがらないだろ・・・
0809デフォルトの名無しさん
2015/11/15(日) 01:31:54.15ID:PNJd8cmY//AaValues.txt
//10,aaa
//20,bbb
AaFct(File.ReadLines("AaValues.txt").Select(l=>l.Split(',')));}
private static void AaFct(IEnumerable<string[]> values){
using (var f = File.AppendText("Aa.cs")){
foreach (var v in values){
f.WriteLine($"new Aa({v[0]},\"{v[1]})\",");}}}
0810デフォルトの名無しさん
2015/11/15(日) 02:56:43.32ID:m6nrC5L10811デフォルトの名無しさん
2015/11/15(日) 06:35:48.77ID:Ro5/nML1サイズや配置が変わって一気に崩れるんだけどなんで?
そもそも個別のコントロールにフォントを設定していたらウィンドウのフォントって触る必要がないもの?
みなさんフォントは何使ってるんだろう モリサワとか入れてるんだろうか
0812デフォルトの名無しさん
2015/11/15(日) 07:24:16.58ID:m7boHCrI業務アプリとかでクソ細かい要求を受け入れなきゃいけないなら全部MS Pゴシック
0813デフォルトの名無しさん
2015/11/15(日) 07:33:24.90ID:wjlQu+ApまずFontはアンビエントプロパティ。特に設定してない子コントロールは親のフォントを使う
よってFormのフォント変えると、子コントロールのフォントも変わる。
さらにFormのAutoScaleModeはFontがデフォ。
フォントによってAutoScaleDimentionの値が変わる
よって各コントロールの大きさが変わる。以上。
AutoScaleModeはDPIにしとこう
0814デフォルトの名無しさん
2015/11/15(日) 13:44:16.69ID:Ro5/nML1具体的なご指導に感謝いたします
独学でやってるとなかなかそうしたものまで及ばないので本とありがたい
0815デフォルトの名無しさん
2015/11/15(日) 14:45:22.59ID:s1AdXoMj0816デフォルトの名無しさん
2015/11/15(日) 14:54:00.71ID:giTGvBPCDBを扱うためのフレームワークの一つ。
何をどれぐらいの規模で作りたいかによる。
小規模なのは、適当なDBで十分、FEは、機能が多すぎてちょっとしたものに適応するには重すぎるだろう。
サーバーを必要としないようなクライアントアプリならSQLiteあたり使っておけばいい。
ORMがやりたいならDapperあたり使えばいい。
0817デフォルトの名無しさん
2015/11/15(日) 15:00:11.33ID:19LeITHMenum Syurui{
a,b,c
}
string moji=“a”;
Syurui syurui=/この部分
この部分と書いたところに変数mojiの中身を列挙型のSyurui.aに変換して
syuruiに入れる処理はどう書いたらいいでしょうか?
0818デフォルトの名無しさん
2015/11/15(日) 15:04:30.20ID:giTGvBPCSyurui hoge = (Syurui)Enum.Parse( typeof( Syurui ) , moji );
もしくは、
Syurui hoge;
Enum.TryParse<Syurui>( moji , out hoge );
0819デフォルトの名無しさん
2015/11/15(日) 15:04:59.41ID:s1AdXoMj詳しい説明有難うございました。
windows vpsサーバーにmysqlいれていてdbプログラミングの勉強中です。月間ページビュー1000万くらいの規模のdbアプリを目指したいです。そういう場合はEFが良いですか?
0820デフォルトの名無しさん
2015/11/15(日) 15:05:44.14ID:XKYu6RGQ0821デフォルトの名無しさん
2015/11/15(日) 15:06:56.73ID:giTGvBPCその規模になると、SQLiteとかじゃ耐えれないだろうから、EF使うと良いと思う。
0822デフォルトの名無しさん
2015/11/15(日) 15:11:31.11ID:s1AdXoMj有難うございました。
早速やってみます。1000万pv達成出来たら報告します。
0823デフォルトの名無しさん
2015/11/15(日) 15:12:13.39ID:SModPTsNアクセス数よりDBの構造の規模で。
どの程度学習してるか、これから学習するのかわからないけど
とりあえず簡単なものを両方のやり方で試してみるのがいいと思うよ。
0824デフォルトの名無しさん
2015/11/15(日) 15:26:03.20ID:19LeITHMできました〜
ありがとうございます
ちゃんと列挙型の変数に格納されて違う値入れたらエラーも出ました
0825デフォルトの名無しさん
2015/11/15(日) 16:06:04.89ID:bBffLHE3stringbuilderで組み立てていったとき、
なんちゃらフラグのときは〜みたいな条件がたくさんあると
if,elseとかのネストがきったなくなるんだけど、どうしたらいいんだろ?
0826デフォルトの名無しさん
2015/11/15(日) 16:38:51.59ID:kqjPbh/tかなり綺麗になる。でも、巨大なデータをメモリ上に置くことになるので
これが最適かどうかはわからない。
どうしたらいいんだろう…。
0827デフォルトの名無しさん
2015/11/15(日) 16:44:09.23ID:hXzxGHNH0828デフォルトの名無しさん
2015/11/15(日) 17:06:33.10ID:kqjPbh/tIDが4バイト、名前が255バイト、年齢1バイト、パスワード255バイト、メールアドレス255バイト
だとすると、1レコードで770バイト。1万人を管理するとして、7,700,000バイトつまり7MB。
メモリ数が4GBだとすると、1/600くらいをメモリが占めることになる。思ったより巨大。
例えば年齢が25歳以下のユーザーだけを取り出したいとする。
そのために、.Where(u => u.age <= 25) というLINQ式を追加する。
7MBのデータを一つずつ見ていかなければならないとすると、一つのメソッドでどれくらいの時間がかかるだろうか?
完全に適当だが、1レコードで100万分の1秒くらいと予想。
1万人で0.01秒。つまりメソッド一つで0.01秒しかかからない。
メモリもすぐに解放される。1/600と聞くと意外と大きな割合のように思えるが、存在しているのはほんの0.01秒である。
さて、メソッドが連なっている場合はどうなるか。
一つ目のメソッドでWbereメソッドを使っているとすると、二つ目以降のメソッドでは、処理対象のレコードが少なくなる。
それは例えば1万→5000といったように。
すると当然、処理時間も減少する。上の例では0.005秒と半分になる。
対象レコード数が1万程度なら何も問題はなさそうだ。
だから僕は、効率よりもソースコードの綺麗さを取ることにする。
これが100万行とかになると、1メソッドで1秒かかることになる。流石にそれはまずいので、
SQL分にWHERE句を追加して、RDBMSに条件の絞り込みの処理を任せる。
if,elseなどを使う必要がある場合はLINQを、最初から決まっている絞り込み条件の場合はそのままWHERE句を
使用する。そうすることにより、早さを維持しながらソースコードを綺麗にすることができる。
0829デフォルトの名無しさん
2015/11/15(日) 17:24:45.76ID:SModPTsNDBは別のサーバにあることが多いから通信も考慮しないとね
0830デフォルトの名無しさん
2015/11/15(日) 17:25:22.41ID:giTGvBPCWHERE句とLIMIT句を指定してレコード数を制限して必要な分だけ読み込めばいい。
0831デフォルトの名無しさん
2015/11/15(日) 19:36:39.93ID:CvRB/UR50832デフォルトの名無しさん
2015/11/15(日) 19:55:51.71ID:5wcT3tcL使いたい時に使えばいい
LINQがいい例
>>819
本当にパフォーマンスが必要ならEFなんてやめとけ
EFは文字列でSQLを作りたくない時に導入するもの
0833デフォルトの名無しさん
2015/11/15(日) 20:12:14.42ID:s1AdXoMjそういう事ですか!
文字列で
select 文を書く普通のやり方で十分なのでef使うのは中止します。
0834デフォルトの名無しさん
2015/11/16(月) 12:51:54.53ID:Ffgt4uY8文字列を変数名として扱う方法はありませんでしょうか?
例
int a=0;
string amoji=“a”;
kansu(ref ここ);
void kansu(ref int a){
Debug.Log(a);
}
「ここ」と書いた場所にstring型の変数amojiの内容である”a”から変数aを用いる
ためのコードの書き方はどうしたらいいでしょうか
変数のリストをテキストファイルで管理しようと思っているのでこういうのが
必要になりました
0835デフォルトの名無しさん
2015/11/16(月) 12:55:17.48ID:AqzFwWr10836デフォルトの名無しさん
2015/11/16(月) 12:58:11.19ID:Eod8iMW6これじゃダメ?
int Kansu(string amoji){
return "a"→aの処理;
}
テキストファイルから読み込んで変数リストの管理を行うなら別のやり方になりそうだけど
0837デフォルトの名無しさん
2015/11/16(月) 13:01:18.51ID:Ffgt4uY8その「"a"→aの処理」っていうのはどうやるんでしょうかね?
0838デフォルトの名無しさん
2015/11/16(月) 13:05:25.95ID:mRFC3bAEやめとけ。
ろくなことにならないからw
0839デフォルトの名無しさん
2015/11/16(月) 13:14:01.22ID:6H4dK92Gjavascriptなら出来るんじゃないか?
0840デフォルトの名無しさん
2015/11/16(月) 13:16:03.85ID:Ffgt4uY8そんなダメですかw
誰もやってない方法ならやめときます
>>839
c#では一般的なやり方じゃないようですね
別の方法を考えます
0841デフォルトの名無しさん
2015/11/16(月) 13:35:59.43ID:htc6fDTL0842デフォルトの名無しさん
2015/11/16(月) 13:36:29.71ID:vMsjPxDw0843デフォルトの名無しさん
2015/11/16(月) 13:50:11.34ID:p+PVyYp50844デフォルトの名無しさん
2015/11/16(月) 14:39:35.24ID:Ffgt4uY8public delegate void Aa();
Aa a;
string kansuu=“Bb”;
public void Bb(){
Debug.Log(“Bb”);
}
a=//ここにaに文字列kansuuの中身の”Bb”を関数Bbに変換するコードを入れる
a();//ここでBb()を呼び出す
0845デフォルトの名無しさん
2015/11/16(月) 14:49:16.58ID:mRFC3bAE0846デフォルトの名無しさん
2015/11/16(月) 14:52:29.58ID:Ffgt4uY8要するに文字列から関数や変数にアクセスしたいって事なんですけど
そんなにおかしいですか
文字列から直接アクセスできないとなれば変数や関数を列挙型でリストアップして
使うときはswitch文で分岐なんていう情けないコードにしかならないと思うのですが
0847デフォルトの名無しさん
2015/11/16(月) 15:01:52.67ID:mRFC3bAEHoge(){
string x = 100;
this.values[nameof(x)] = () = x;
int ans = this.GetValue<int>( nameof( x ) ) * 2;
Console.WriteLine( ans );
}
T GetValue<T>( string name ) => (T)this.values[name]?.Invoke();
みたいなことをやれば辛うじてできなくはないが、保守性も効率も最悪なので普通はやらない。
0848デフォルトの名無しさん
2015/11/16(月) 15:03:36.05ID:vMsjPxDwまあReflection使えばできる
public static void Bb()
{
Debug.WriteLine("Bb");
}
void test()
{
Type thisType = GetType();
string kansuu = "Bb";
MethodInfo mi = thisType.GetMethod(kansuu);
mi.Invoke(null, null);
}
とか、、、delegateでもいけるかな
0849デフォルトの名無しさん
2015/11/16(月) 15:13:31.76ID:Ffgt4uY8>>848
Invokeというメソッドを今初めて知ってよくわからないんですけど
どうもかなり遅いらしいですね
ゲームを作っているのでそれでは都合が悪いです
やっぱりずらずらとリストアップする方法でやりたいと思います
ありがとうございました
0850デフォルトの名無しさん
2015/11/16(月) 15:14:46.20ID:Eod8iMW60851デフォルトの名無しさん
2015/11/16(月) 15:21:13.63ID:Ffgt4uY8バレちゃったw
結局テキストファイルを読み込んでやる事にしたんです
それでテキストファイルに変数名や関数名を書きたいなぁと思って質問しました
0852デフォルトの名無しさん
2015/11/16(月) 15:39:44.62ID:mRFC3bAEAction a => () => { } ;
a(); と a.Invoke() は、同じことをやっている。
null伝播使うとき、 ?.() という書き方ができないので、?.Invoke() にしてあるだけだ。
もちろん、普通のメソッドに比べれば、インライン化されないなどの僅かな差はあるだろうが、気にするほどではない。
遅いのは、>>848がやってるようなリフレクションだ。
こいつは、桁違いで遅い。ExpressionTreeで実行時にデリゲートを構築してやれば、速度の問題はある程度解消できるだろう。
あとは細かいところで変数のキャプチャ、ボックス化が生じてパフォーマンス低下につながることになる。
0853デフォルトの名無しさん
2015/11/16(月) 15:46:42.66ID:Ffgt4uY8正直初心者なのでその区別もつかないです
dictionaryとかならわかる範囲なのでそれでも使おうかなと思ってます
多少コードが冗長になっても
0854デフォルトの名無しさん
2015/11/16(月) 16:12:09.04ID:4iBaA+8B0855デフォルトの名無しさん
2015/11/16(月) 16:42:18.72ID:Ffgt4uY8やっぱりそれが一般的なんですかね
別のゲームにも再利用しやすい仕組みにできないかなと色気を出してしまったのも
今回こういう質問をした理由なんですけども
0856デフォルトの名無しさん
2015/11/16(月) 16:46:44.96ID:mRFC3bAE再利用しようとしたときには、(誰だ、この糞設計したのは!糞コード書いたやつ死ねよ?…自分か…)ってなってゴミと化すだけだから。
0857デフォルトの名無しさん
2015/11/16(月) 18:04:07.44ID:/wMXw7Lm0858デフォルトの名無しさん
2015/11/16(月) 18:40:32.23ID:LDaVIeza「変数のリストをテキストファイルで管理しようと思っている」って>>834で書いてるから、変数の値は保存してないんじゃねえの?
全く意味不明だけど
0859デフォルトの名無しさん
2015/11/16(月) 19:19:50.00ID:Ffgt4uY8シリアライズとはどういう機能なんでしょうか?
ググってもイマイチわからなかったのでこの件とどういう関係があるのか教えてもらえませんでしょうか
0860デフォルトの名無しさん
2015/11/16(月) 19:19:59.69ID:/wMXw7Lmあ、そうか、外してたな
0861デフォルトの名無しさん
2015/11/16(月) 19:37:02.75ID:mRFC3bAE0862デフォルトの名無しさん
2015/11/16(月) 19:38:00.43ID:diuJbJ+Uシリアライズはオブジェクトを通信で送るのに使う
ローカルファイルへの保存に使うのはドツボにはまるのでやってはいけない
XmlSerializerみたいなスキーマありきの奴ならいいけどね
0863デフォルトの名無しさん
2015/11/16(月) 19:42:53.32ID:mRFC3bAE設定データの保存用にBinaryFormatter使ってたら、古いデータとの互換性取れなくなってドツボにはまったことあるわ。
0864デフォルトの名無しさん
2015/11/16(月) 20:34:38.26ID:HIZPDz5u0865デフォルトの名無しさん
2015/11/16(月) 20:45:10.02ID:Ffgt4uY8うるせーなw
大きなお世話だw
0866デフォルトの名無しさん
2015/11/16(月) 22:21:51.30ID:bfEVOxksこういう人って必要な分だけネットで覚えたから知識に穴だらけ
基礎もままならない状態だから、ある目的のためにダメな手段を
思いつきでやろうとするから>>834のようなことになる
newを100回書こうとしたりね
目的を自分の中で明確にして質問すればいいのにな
ここにいる人も気づいているのに
からかい半分に間違った手段のために律儀に答えようとしてるし
みんなもわかっているんだろ、本当に彼がしたいことを
焦る気持ちはわかるけど、まずは基礎だよ
基礎がしっかりしてないと、コピパーになるよ
0867デフォルトの名無しさん
2015/11/16(月) 22:27:42.07ID:LDaVIeza変数名しか管理しないんならソースコードに直接書けばいいとしか思えないんだけど、多分深い理由があるんだろうからテキストファイルから変数を取得する方法を教えるしかない
0868デフォルトの名無しさん
2015/11/16(月) 22:41:27.09ID:p+PVyYp5垂れ流しのウンコを擦り付けてくるなよってだけ
0869デフォルトの名無しさん
2015/11/16(月) 22:43:40.13ID:p+PVyYp50870デフォルトの名無しさん
2015/11/16(月) 22:48:59.73ID:Eod8iMW60871デフォルトの名無しさん
2015/11/16(月) 22:50:19.96ID:mRFC3bAEおそらく、変数というものを最近知ったんだろう。
だが、クラスを自分で定義したり、Dictionaryを使ったりする方法は知らないと思われる。
0872デフォルトの名無しさん
2015/11/16(月) 23:01:20.17ID:AqzFwWr1これができなきゃプロジェクト崩壊、ヤバイ死ぬとか
そういう話なら、答えてやらんでもないがね >文字列を変数名
最初から使用を前提にするとか有り得ない
0873デフォルトの名無しさん
2015/11/16(月) 23:41:45.35ID:Ffgt4uY8俺のやりたい事はアドベンチャーゲームに近いんだけどゲームを「シナリオ単位」
に分けてそのシナリオを遷移させる事で
ゲームを進めるという仕組みにしたかったんだよ
で、最初はシナリオクラスをたくさんnewして並べようと思ったんだけどそれはやめて
テキストファイルから読み込んでやる事にした
それでそのシナリオの中には○○関数を呼び出したいとか○○変数を使いたいみたいなのも
含まれる
それでテキストファイルの中にaaaaと書いてあって
それを読みだしてaaaa変数が使えたら便利なんじゃないか?
というのが今回の質問の趣旨
0874デフォルトの名無しさん
2015/11/16(月) 23:46:31.65ID:diuJbJ+U変数を文字列で選ぶようなメタな仕組みは必要ないと分かるはず
初心者はそこをごっちゃにするからおかしくなる
0875デフォルトの名無しさん
2015/11/16(月) 23:59:23.74ID:bfEVOxksわかるよーADV用のスクリプト言語開発したいんでしょ
吉里吉里みたいなもんでしょ
UnityだとJokerScriptというのがあるみたいだね
自作のゲーム用フレームワークを作って開発効率あげようってことでしょ
ゲーム制作は専門外なのでぼくは答えられませんけど
がんばってね!
0876デフォルトの名無しさん
2015/11/17(火) 00:06:19.08ID:R+1w9ien設計がおかしいというのは薄々わかってました
今回おかしいと言われてようやく明確な自覚を持てました
それがわかっただけで有意義な質問だったと思います
ありがとうございました
>>875
そういう事なんですよ
スクリプトというほど高等な物じゃなくて簡易的なものなんですけど
0877デフォルトの名無しさん
2015/11/17(火) 00:10:46.96ID:0HyN1ztjBASICみたいな感じで簡易スクリプト言語を組んでしまえばいい。
MSG
何かのメッセージ
MSGEND
SET A=100
GET B,A
みたいなやつを決めて、C#側での変数管理は、Dictionary<string,object> values;のようなディクショナリでまとめておいて、
SET命令が出てきたら、values["A"] = 100。
GET B,Aなら、values["B"] = values["A"] って感じで実行するように組んでおけばいい。
0878デフォルトの名無しさん
2015/11/17(火) 00:16:26.67ID:WTj4x1Uoアスペなのかもしれないから教えておくけど、875はそういうスクリプトを使えってことを嫌味を込めて言ってるんだと思うぞ
車輪の再発明は無駄だからな
0879デフォルトの名無しさん
2015/11/17(火) 00:19:58.23ID:R+1w9ienその考えで根本的に作り直したいと思います
まだ準備段階なのでやり直しが効きますので
>>878
自分で作るというのはすでに決まってます
だから小規模でまとめようと思ってます
0880デフォルトの名無しさん
2015/11/17(火) 00:37:33.94ID:3fiu8XQQ学校でC言語とJavaは習いました。
0881デフォルトの名無しさん
2015/11/17(火) 01:07:53.71ID:lYlDUfoh0882デフォルトの名無しさん
2015/11/17(火) 01:09:58.66ID:+UlWRHgWC#でやるべき方法じゃないと思う
動的言語rubyとかでやったほうがたぶん早い
0883デフォルトの名無しさん
2015/11/17(火) 01:12:35.98ID:MdYEWsJuアスペなんだから伝わるわけないわな
無駄無駄ァ
0884デフォルトの名無しさん
2015/11/17(火) 01:13:29.87ID:slq8dUH/できたよ
class Player{
public void Say(object str){
Console.WriteLine(str); }
public void Dance(object d){}}
class Game{
List<Action<object>> scenario = new List<Action<object>>();
public void Init_Scenario() {
var akane = new Player();
var player = new Player();
scenario.AddRange(new Action<object>[] {
o=>akane.Say("おはよう"),
o=>player.Say("おはよう"),
o=>akane.Dance(1),
o=>player.Say("いきなり踊るな!"),
});}}
0885デフォルトの名無しさん
2015/11/17(火) 01:14:37.99ID:lYlDUfoh自作する価値はない
シベリア超特急エンドレスで見た方がマシ
0886デフォルトの名無しさん
2015/11/17(火) 01:20:05.47ID:0HyN1ztj0887uy ◆Qawu9.2l1E
2015/11/17(火) 13:02:45.67ID:+c9tLHNnそんな作りで効率上がると思ってんの?wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
0888デフォルトの名無しさん
2015/11/17(火) 13:12:19.65ID:0HyN1ztj0889uy ◆Qawu9.2l1E
2015/11/17(火) 13:26:31.53ID:+c9tLHNnHTMLを書いてブラウザで表示させるようなものをゲームプログラミングで行う
つまりブラウザ開発
0890uy ◆Qawu9.2l1E
2015/11/17(火) 13:33:24.71ID:+c9tLHNn>877 :デフォルトの名無しさん:2015/11/17(火) 00:10:46.96 ID:0HyN1ztj
>はじめからどういう目的があるのかを質問に含めないから厄介なことになるんだ。
>BASICみたいな感じで簡易スクリプト言語を組んでしまえばいい。
>
>MSG
>何かのメッセージ
>MSGEND
>
>SET A=100
>GET B,A
>
>みたいなやつを決めて、C#側での変数管理は、Dictionary<string,object> values;のようなディクショナリでまとめておいて、
>SET命令が出てきたら、values["A"] = 100。
>GET B,Aなら、values["B"] = values["A"] って感じで実行するように組んでおけばいい。
低能晒しあげ
0891デフォルトの名無しさん
2015/11/17(火) 13:43:42.85ID:R+1w9ien俺はこの方法でやろうと思う
テキストファイルを読み込む時に個々の命令はクラスの配列に全部入れてしまう
だからゲーム中に命令解釈のなんていうのかオーバーヘッドみたいなのは発生しない
それでちゃんと動くと思うよ
0892デフォルトの名無しさん
2015/11/17(火) 14:37:25.22ID:lYlDUfohその方が挫折が早くなって時間を有意義に使える
0893uy ◆Qawu9.2l1E
2015/11/17(火) 15:03:15.83ID:+c9tLHNn動くと思うけど動かせないと思うよ
技術力的に
0894デフォルトの名無しさん
2015/11/17(火) 16:22:29.57ID:slq8dUH/>>884
シカトすんな
0895デフォルトの名無しさん
2015/11/17(火) 16:58:51.42ID:R+1w9ien回答遅れてすいません
それはキャラクターの動作をリストで持ってるだけですよね
俺としてはシナリオにそのシナリオのラベルや分岐情報などをつけたいと思ってるんです
0896デフォルトの名無しさん
2015/11/17(火) 17:00:51.13ID:7LzXRzXHそれ、やるにしてもXMLで管理すればよくない?
0897デフォルトの名無しさん
2015/11/17(火) 17:11:59.62ID:CRnDMuhn全部書かなきゃわからんのか!
あれを応用すれば言ってること全部できるだろ!
分岐するなら新しいリスト作ればいいだろ!
テキストから読むこともない
何が不満なんだよ!アホ!
0898デフォルトの名無しさん
2015/11/17(火) 17:16:13.59ID:R+1w9ienやってくれなんて言ってませんw
どう回答したものかと困ってこういう書き方になってしまいました
スンマセン
当然自分でやります
0899デフォルトの名無しさん
2015/11/17(火) 17:18:33.49ID:kJodvt3B0900デフォルトの名無しさん
2015/11/17(火) 18:34:42.67ID:3nwXwektどうせクソゲームなんだろうから誰もシナリオなんて書いてくれないわけで
自分でひりだすんだろうからコードで書いたほうが時間の節約になるな
0901デフォルトの名無しさん
2015/11/17(火) 18:37:45.69ID:kJodvt3B0902デフォルトの名無しさん
2015/11/17(火) 19:05:22.52ID:sj29+6cn0903デフォルトの名無しさん
2015/11/17(火) 19:20:52.79ID:A3FVmbuJc#を覚えるまでみたいなゲームだと面白いな
ああああはレベルが上がった!
if文を覚えた!条件分岐ができるようなった!
0904デフォルトの名無しさん
2015/11/17(火) 21:30:57.69ID:lYlDUfoh0905デフォルトの名無しさん
2015/11/17(火) 22:16:03.94ID:jwVZTkmN0906デフォルトの名無しさん
2015/11/17(火) 22:16:57.43ID:SR74YNAGroslynのc#scriptingはまだプレリリースだし、仕様が安定してないところがあるので、
luaとかの組み込み用言語使った方がいいと思うなぁ。
c#scriptingはなかなか魅力的だけど。
0907uy ◆Qawu9.2l1E
2015/11/17(火) 22:19:04.52ID:H8TlhYuF進んでいくSTG作ろうとした事あったけど色々無理があってやめた
0908デフォルトの名無しさん
2015/11/18(水) 00:33:12.41ID:SNPtSU1p近い趣向のものでは、NPCに戦略支持を出してくものがあるけど
ビジュアルスクリプトにするにせよ、テンポ調整が難しそうだな
むむむ…
0909デフォルトの名無しさん
2015/11/18(水) 07:37:45.36ID:by9GKQSyブリーダー (ディスクシステム)
https://youtu.be/xz3N-d-e-RQ
0910デフォルトの名無しさん
2015/11/18(水) 08:05:33.01ID:G8OYuYmRFormアプリを強制終了したり、Dispose()を呼び出さないでFormを終了した場合
何か問題になったりしますか?
0911デフォルトの名無しさん
2015/11/18(水) 10:21:52.47ID:4O1y0zjCそんなこと気にせずにドンドン必死でプログラム書けばいつか答えが見つかるよ。
0912デフォルトの名無しさん
2015/11/18(水) 12:46:54.84ID:/pyqs2gqusing使いなさいよ
0913デフォルトの名無しさん
2015/11/18(水) 14:35:01.75ID:8OGiKQJmShowDialogで表示してるなら別として…
0914デフォルトの名無しさん
2015/11/18(水) 16:00:50.19ID:1FcAcZvq0915デフォルトの名無しさん
2015/11/18(水) 20:35:15.11ID:by9GKQSy参照が切れればいつかはGCされる
プロセスが終了すればOSに回収される
0916デフォルトの名無しさん
2015/11/18(水) 22:21:51.16ID:LvRn/Spfいつもusingしてるが
お前は何を言っているんだ低能
0917デフォルトの名無しさん
2015/11/18(水) 22:53:39.77ID:XBTkD2/m0918デフォルトの名無しさん
2015/11/18(水) 22:55:58.03ID:s071DD2K0919デフォルトの名無しさん
2015/11/19(木) 01:22:50.82ID:6x5+bHoL0920デフォルトの名無しさん
2015/11/19(木) 05:51:38.88ID:cNWt69lkインターフェースから書いていきます?
実装から書いていきます?
0921デフォルトの名無しさん
2015/11/19(木) 06:08:49.37ID:yq8an3Lp0922デフォルトの名無しさん
2015/11/19(木) 06:18:09.35ID:cNWt69lkアプリ作る時
インターフェースから作っていきます?
実装から作っていきますか?
今インターフェースを勉強しているんだけど
インターフェースから作った方が綺麗なコードが
書けるんじゃないかなって思ったんですけど
0923デフォルトの名無しさん
2015/11/19(木) 07:14:47.20ID:my8rYb+Z最初に全体の完璧な設計が出来上がってるのであれば当然インターフェイスから作るのが後戻りがないわな
それができないんなら汚くていいから実装→リファクタ
0924デフォルトの名無しさん
2015/11/19(木) 07:43:41.76ID:YneMFXa5MultiLineプロパティをtrueにセット複数入力が出来る場合で
入力エリアの一番下の位置に空白が出来るのを何とかしたいのですが
何か方法はありませんでしょうか?
現状 /=入力スペース
-----------------------------
1233333/////////////////////スクロールバー
1233333/////////////////////↑
1233333/////////////////////
1233333/////////////////////↓
←ここに余白が出来る。エンターを押すと更に下に移動する
------------------------------
希望 /=入力スペース
-----------------------------
1233333/////////////////////スクロールバー
1233333/////////////////////↑
1233333/////////////////////
1233333/////////////////////↓
------------------------------
よろしくお願いします。
0925デフォルトの名無しさん
2015/11/19(木) 07:51:55.38ID:cNWt69lkインターフェイスの抽出なんて機能があったんだ
設計書は書けないから実装からのほうが良さそうですね
0926デフォルトの名無しさん
2015/11/19(木) 08:59:06.47ID:jS0xGfYR現代の歴史家は2人が失読症ではないかと疑っている。
https://twitter.com/okdshin/status/666903312151613440
0927デフォルトの名無しさん
2015/11/19(木) 10:30:02.98ID:A33ByGDA0928デフォルトの名無しさん
2015/11/19(木) 10:39:22.99ID:A33ByGDAチーム開発においてクラスメンバのシグネチャを強制すれば振る舞いを誰が実装しても大きな問題おきないでしょ。
実装なんてブラックボックスでいいんだよ、利用者はシグネチャさえわかればいいんだから。
数百、数千億規模のプロジェクトでもまともにinterface作ってない場合多いからレベル低すぎるね。
上流がコーディングできなんじゃ設計なんてできるわけないんだよ。
0929デフォルトの名無しさん
2015/11/19(木) 12:49:16.71ID:G20bfr3g自力でやるしかないんじゃね?
0930デフォルトの名無しさん
2015/11/19(木) 12:58:52.05ID:h0D34cF3何を言ってるのかよく分からない。
そんなこと起こらんけど。
>>926
気付いてないのかもしれないが、コピペマンのお前さんこそ統合失調の疑いが濃厚だよ
馬鹿じゃないの。
0931デフォルトの名無しさん
2015/11/19(木) 13:16:57.34ID:WApHXGH2TextBoxのHeightを小さくして入力スペースぴったりになるようにすれば?
0932デフォルトの名無しさん
2015/11/19(木) 13:46:03.31ID:7AHNe+Hm本当それ
基礎中の基礎なのにinterfaceの使い方もしらないオレオレ設計者しかいないわ、うちの会社
1.1 ボタン押下時イベント
みたいなExcel方眼紙にオレオレ詳細設計書書くのが普通になってるし
0933デフォルトの名無しさん
2015/11/19(木) 14:36:23.31ID:j6gYHvV7最後の改行を消せ
0934デフォルトの名無しさん
2015/11/19(木) 14:42:03.70ID:gXUiymqK0935デフォルトの名無しさん
2015/11/19(木) 15:07:03.92ID:h0D34cF3唐突に意味不明なこと書くお前がキチガイなんだ馬鹿。
0936デフォルトの名無しさん
2015/11/19(木) 15:13:15.38ID:f/FwklKJ若いもんはそういう些細な事が気になるもんじゃ。
0937デフォルトの名無しさん
2015/11/19(木) 15:28:03.26ID:A33ByGDA運用の問題はアトリビュート、共通化したい機能はトレイト・ミックスインで対応可能。
いい加減、ドキュメント作成より実装に工数かけようぜ。
0938デフォルトの名無しさん
2015/11/19(木) 16:07:33.31ID:PQiMaMHb昨今のマイクロソフトは日々おかしな事しでかすな
もう、めんど臭いし、全員でLINUX移ろうぜ
0939デフォルトの名無しさん
2015/11/19(木) 16:26:04.89ID:h0D34cF3誰と戦ってるの?w
0940デフォルトの名無しさん
2015/11/20(金) 00:05:26.71ID:U2PcGSVo0941デフォルトの名無しさん
2015/11/20(金) 06:50:13.45ID:0b9D5XOxソースコード上にリテラルとして文字列書く場合だけ\\か@使う
0942デフォルトの名無しさん
2015/11/20(金) 15:56:07.37ID:JvKaxnpE0943デフォルトの名無しさん
2015/11/20(金) 16:58:48.84ID:IfcC+Denこれを回避する方法はありますでしょうか。
0944デフォルトの名無しさん
2015/11/21(土) 17:21:44.96ID:hR7d38wi{
foreach(y,,,)
{
yield return x==y
}
}
foreachが入れ子になっているのは
ラムダで表現するのは無理だよね?
0945デフォルトの名無しさん
2015/11/21(土) 17:25:46.50ID:JFj+7WujSelectMany
0946デフォルトの名無しさん
2015/11/21(土) 17:50:16.36ID:w45vfkw8の時にstrを数値に変換するとして、変換出来る最初の部分文字列
"123.45"
を数値化したいのですが、そういう関数ありますか?
さらに、
string str = "ああ1.2E3abc678";
なら、
1200
が得られるといいのですが。
つまり全角半角どちらでも良くて、かつ指数表示にも対応している。
標準の関数でありますか?
0947デフォルトの名無しさん
2015/11/21(土) 23:22:04.67ID:lPfCyIV+0948デフォルトの名無しさん
2015/11/21(土) 23:23:57.45ID:GdR6w5S80949デフォルトの名無しさん
2015/11/22(日) 00:27:01.45ID:iT1tZCI1目的は?
0950デフォルトの名無しさん
2015/11/22(日) 03:00:05.12ID:JSdSEHUdUnityのエディタとスクリプトが依存しあってる環境でエディタ上での変更に柔軟に対応したい(つまり一々コードを手作業で書き換えず楽したい)のと、
文字列を引数にして検索するメソッドを使う際にできれば列挙型か文字列定数で安全に取り扱いたい
というのが目的だったけど列挙型のスクリプトを生成するスクリプトを書くのが現実的なのかな
0951デフォルトの名無しさん
2015/11/22(日) 03:03:06.28ID:o24m0lwv0952デフォルトの名無しさん
2015/11/22(日) 03:06:45.63ID:u++Mym7Wお前もうコテハン名乗れよwww
お前ぐらいだよ。そんな変な質問するのwwww
0953デフォルトの名無しさん
2015/11/22(日) 05:54:12.53ID:c83Tb2v8実際の開発でメンバー修飾子(public intenal etc..)ってどういう基準でつけてるもんなんですか?
データベースと連携した業務アプリケーションをちまちま作ってるんですが、
privateにしなきゃというところは、何となく考えながらつけてるんですが、
そうでないところで(他クラスからアクセスさせたいプロパティとか)
publicでいいのか、せめてinternalをつけた方がいいのかどうも明確に意識して設計できないのです
開発チームとかあるわけでなく、一人で作っていて使い分けの事例なんか見ててもピンとこないというか
0954デフォルトの名無しさん
2015/11/22(日) 06:06:55.82ID:zwZfG106パッケージとして独立させてAPI公開する気がないんだったら
迷うところはpublicでいいだろ
つか一人で作ってるなら全く気にする必要ないような…
0955デフォルトの名無しさん
2015/11/22(日) 07:37:23.55ID:PowSWGiN全角/半角変換、日本語を扱うのは、Linuxでは、
nkf ライブラリを使うけど、C#には無いの?
それか最初に、全角を半角に変換してから、正規表現を使えば?
0956デフォルトの名無しさん
2015/11/22(日) 13:10:53.96ID:eHZxB5Wh別人だよw
ID:OxpghztZは俺だからw
0957デフォルトの名無しさん
2015/11/22(日) 13:21:21.34ID:YBzI3bTB総じて低レベルだから
0958デフォルトの名無しさん
2015/11/22(日) 16:34:36.06ID:2L1cven6誰にでも思いつく発想だからな
殆どは挫折する
0959デフォルトの名無しさん
2015/11/22(日) 17:26:57.27ID:KDgQ57Ye日本中の少年少女がゲームプログラミングに熱中し、
作成したゲームのソースをベーマガという雑誌に投稿し掲載されたものだ。
今、日本のIT業界を支えてるのは高スキルな彼らである。
0960デフォルトの名無しさん
2015/11/22(日) 17:52:36.89ID:Z+udvk0o前も書いた気がするけど、ベーマガなんてお子様向けの子供だましの雑誌だよw
まあ評価は世代にもよるだろうけどね。
少なくとも俺の評価はそう。
まあそれはどうでもいいけど、そういうネトウヨ的自己陶酔は傍目に気色悪い。
それが自己陶酔だって気が付いてないんだろうけど。
ついでに言うと、ベーマガの時代(って言っても20年あるから一口には言えないが)はゲームも
PCのハードも素朴な物だったから低スキルでもそれなりに評価されるものが作れたが、
今の時代WindowsにしろAndroidにしろそもそもゲーム向きじゃない上に
ユーザーの目も肥えてるから、はっきり言って今の時代ゲームを作る方が何十倍も大変だと思う。
実際問題今時のゲームプログラマってプログラマ全体の中でも地頭がよくないと出来ないんじゃないの?
0961デフォルトの名無しさん
2015/11/22(日) 18:06:41.65ID:YBzI3bTBゲーム作ろうとしてる奴はゲームプログラマではない
0962デフォルトの名無しさん
2015/11/22(日) 18:31:41.01ID:GP1Qn5OD企画 + ゲームデザイン + プログラミングをすべて一人でやってたのをお子様とか言っちゃうのはゆとりかな?
0963デフォルトの名無しさん
2015/11/22(日) 18:34:49.04ID:fPUy/JrI× 実際問題今時のゲームプログラマってプログラマ全体の中でも地頭がよくないと出来ないんじゃないの?
○ プログラマって本当は地頭がよくないと出来ない
本来の問題は日本では頭が悪い奴がプログラマになって無駄なデスマーチ&生産性が上がらないための低給料
というデフレスパイラル的なものに陥っていることだろ。(アメリカではこれを回避できているらしい)
ゲームプログラマだけが特に頭がいい必要があるとは思えない、というか、
本来はどの方面のプログラマも頭がよくないと駄目なんだよ。
ただ、プログラミングなんて手段でしかないんだから、
ゲーム好きがゲームを作ろうとするのは自然なことだと思うし、いいことだと思うよ。
とはいえ、今ここでやろうとしている2人は両方とももう少し基本を押さえるべきではあるが。
C#は軽量言語ではない。ほぼ全てのケースに対して対応できる記述能力/ライブラリは既にある。
逆に言えば、初心者が先人が全く想定していなかったケースにいきなり当たる確率はほぼ無い。
今お前らがやろうとしていることが出来ないのは、やり方が間違っているからだ。
(普通は違うやり方で実装し、その方がいい/それで問題ないからその実装手段が提供されていない)
0964デフォルトの名無しさん
2015/11/22(日) 18:42:55.24ID:NW0PnoYA文脈わからんし動的に追加、削除の含意も知らんが
それってDictinary<string,int>の仕事じゃないのって、アドバイスしとくね
あとは列挙型の内部実装がどうなってるかしらないけどどうせクラスか構造体かでしょ
他にあるとすればリフレクション使ったりで列挙型クラスを動的構築するとかになるのか?
まあやりたくないよね、そんなこと
0965デフォルトの名無しさん
2015/11/22(日) 18:47:35.92ID:j30Wwuuw将来使えるようになる?
0966デフォルトの名無しさん
2015/11/22(日) 18:51:26.08ID:NW0PnoYAなにそれ?どうやって使うの?
0967デフォルトの名無しさん
2015/11/22(日) 19:03:27.41ID:Z+udvk0o本質的にプログラマに向かない奴がプログラマになってる(それで2chとかでブラックがどうのとか自分の無能を棚上げして
被害妄想全開)って現状認識はその通りだと思うが、プログラマって一口に言っても要求される能力は全然違うわけで、
例えばC#で特定企業向けの業務ソフトを作ってる人間とゲームプログラマじゃ、恐らく後者の方が圧倒的に
高い能力が要求されるのはまあ事実だと思うよ。
そのくせ社会的な評価はあんまり高いように思えんから何か損な仕事だな。
俺はゲームプログラマじゃないけどね。
0968デフォルトの名無しさん
2015/11/22(日) 19:03:55.53ID:DtMt13r7今でもプロパティ名がItem1~って固定な簡易Tupleならある
でもプロパティ名もその場で付けれるちゃんとしたTupleの実装予定はあるよ
0969デフォルトの名無しさん
2015/11/22(日) 19:06:02.36ID:KDgQ57Yeゆとりの言い分はよく分った。
0970デフォルトの名無しさん
2015/11/22(日) 19:08:06.34ID:+71DZHa4社会的に成功するのはその上ビジネスが分かってる奴で、これは稀
0971デフォルトの名無しさん
2015/11/22(日) 19:12:42.09ID:Z+udvk0o俺から見たらベーマガ世代こそどっぷりゆとり世代なんだけど。
0972デフォルトの名無しさん
2015/11/22(日) 19:15:10.11ID:fPUy/JrIちょっと脱線するが、Tupleって結局何がいいんだ?
構造体やクラスで問題なく実装できるよね?
ただ流行っているみたいだから、何か利点があると思うのだが、、、
0973デフォルトの名無しさん
2015/11/22(日) 19:21:08.24ID:+71DZHa4タプルがじゃなくて関数型プログラミングが(意識高い系の連中の中で)流行ってる
関数型プログラミングでは複数の値を一つにまとめて扱いたいことが多いのでタプルが必要
オブジェクト指向プログラミングならフィールド書き換えればいいので本来不要
0974デフォルトの名無しさん
2015/11/22(日) 19:30:38.64ID:KDgQ57Ye中高生が一種や二種を取るんだ。そして当時の試験範囲は大学レベルの英語や数学、そして商業、工業も含まれてる。
おれも余裕で合格したけどね。今みたいに簡単じゃないよ?選択マークじゃなく筆記だし。
0975デフォルトの名無しさん
2015/11/22(日) 19:37:26.35ID:fPUy/JrIゲーム:チューニングゴリゴリ、ただし基本的に1発出して終わり
特定企業向け業務ソフト:動けばいいが、長期的メンテナンスが求められる
ゲームプログラミングの方が単品では難しいのは事実だけど、
業務ソフトには長期メンテを考慮した構成が求められる。(難しさの方向が違う)
ただ、チームとしては、ゲームは10人中10人バリバリでないと駄目なのに対し、
業務ソフトなら、トップ1人が美しい構成を考え、残り9人は並みでいい。
だからゲームチームを作る方が難しいし、
一般論としてゲームプログラミングの方が難しいというのもその通りだろう。
0976デフォルトの名無しさん
2015/11/22(日) 19:55:16.96ID:NW0PnoYA単純な2Dゲーなら今はマシンパワーもあるし、複雑怪奇な最適化はしなくてもいいと思うけど
マルチスレッドとか、メモリアクセスやファイルアクセスのタイミングとかやりだすと
複雑そうな感じは受ける
0977デフォルトの名無しさん
2015/11/22(日) 20:19:08.43ID:fPUy/JrIさらに脱線して申し訳ないのだが、関数型プログラミングは何で流行っているの?
正直、余りメリットを感じないのだが。(なお使っているのはJavaScript)
HaskellかLispやらないと理解不能かな?
言っちゃ悪いが、Lispなんて昔からあっても誰も使ってなかった=実用レベルに達していないゴミ
だと考えている。それとは別に、内部状態を持たないとか、カリー化とかで検証がし易くなるのは事実だけど、
今その手の言語を使っている奴らがそこまでの検証レベルを要求されているとは到底思えない。
(言語いじって遊んでいるだけのように見える)
JavaScriptとかでも(俺は本業ではないが)
・ローレベルコードは書かない(キリッ (for文を絶対に使わず、map(匿名関数)で処理)
・内部状態を持たない(キリッ (途中一部分だけで済む場合も頭から全部処理)
も多くて、確かにこの方法ならバグりにくいが糞遅い。実感としては大半がこんな感じ。
お前ら明らかに方向を間違ってるよなーとしか思えないのだが。
(問題ない場合はこの手の超富豪プログラミングもありだが、問題あっても対策しない感じがある。
宗教がかった聖域というか。)
0978デフォルトの名無しさん
2015/11/22(日) 20:38:22.50ID:xDxhP+Cq声がでかい奴が拡声器でわめいてるからそう感じるだけだ
0979デフォルトの名無しさん
2015/11/22(日) 20:45:30.67ID:NW0PnoYA関数型を学ぶメリットはドキュメントが営業的観点で腐っていないということ
コミュニティがそれによって質の高い状態が保たれている
一番のメリットは「ユーザーにバカが少ない」ということこれに尽きる
LispやHaskellなんて、それこそ熱心な勉強家でなければ手に取らないということ
純粋関数はマルチスレッドに良い影響をもたらす
というかGUIとかスレッドとかどう見ても関数が主役でオブジェクトがシンタックスの邪魔をしている
最近勢力を誇っているwebサービスもほとんどが関数型指向でかかれているし
Javascriptが今隆盛を誇っているのも結局はそういうことなんだよな
まあHadoopやMapReduceとか必要になるようなアプリケーション書くような企業は限られてるけど
マルチコアが前提となってくると結局関数の純粋性が常に問われてくる
幸いまだC#はLINQやTaskで関数型やマルチスレッドをサポートしてるので生存の余地はあるけどね
というかC#にLINQが導入されたのは、どう考えてもSQLではなく関数型の影響だしな
内部状態を極力持たずにというのはweb(HTTP)の考え方だし
JsonやXMLや(S式)で非同期処理するということを考えると関数型は流行らざるをえない
関数型が流行っているというよりwebベンチャーが流行ってるというのが正しいな
まあJavascriptがそのポテンシャルを見いだされるまでに10年近くかかったわけだし
Javascriptが微妙なのは同意するよ
0980デフォルトの名無しさん
2015/11/22(日) 21:03:03.77ID:T8hXZH4x科学計算駆使しなきゃならない人とかが使うんだよ
そういった領域では実用的というより必須になる
最近話題にのぼりやすい言語では、R言語とかがあるが関数型になっている
C#は汎用言語なので色々な領域の処理をする人が居て、こういった処理をしたいと望む人には欲しい機能なんだ
最近は、ビッグデータとか取り扱う人も多いでしょうし、例えば金融関係とかトレーディング等でHaskellの採用があったりする
そういう意味では地味に流行ってはいるかもしれない、ビッグデータもバズワードになる程度には流行ってるからね
タプルは自分も欲しいと思っている機能、オブジェクト指向が不向きな領域の処理多いが
ユーザーインターフェイスと別けて別言語でというのも煩わしいので
>声がでかい奴が拡声器でわめいてる
ラムダ式の人とかうざいよね、これだけは同感w
昨日の要求はしたいが、声高々に流行っている言う程のもんかよwww
0981デフォルトの名無しさん
2015/11/22(日) 21:07:02.69ID:o24m0lwv0982デフォルトの名無しさん
2015/11/22(日) 21:09:34.06ID:T8hXZH4x>>980 だけは違いますんでw
0983デフォルトの名無しさん
2015/11/22(日) 21:31:52.46ID:GP1Qn5OD0984デフォルトの名無しさん
2015/11/22(日) 21:35:46.49ID:T8hXZH4x彼にとって、スレチとか関係ないのです、誰もお前とは話したないから、さっさと自殺すればいいのに
0985デフォルトの名無しさん
2015/11/22(日) 21:54:59.54ID:fPUy/JrI> 純粋関数はマルチスレッドに良い影響をもたらす
これは確かにその通りなのだが、同じ事はオブジェクト指向でも言われていたはず。
OOPも1オブジェクトに対して1スレッドを割り当てれば干渉しない。
関数型で自動マルチスレッドを期待するのなら、結果的に完全に同じものになる。
> 内部状態を極力持たずにというのはweb(HTTP)の考え方だし
JavaScriptに関してはこれは多少弁解の余地があって、
実際やっていると503エラーとかで内部状態がずれる時がよくあるので、
最初から管理しないというのも一つの方法にはなる。(ただし糞遅い)
> JsonやXMLや(S式)で非同期処理するということを考えると関数型は流行らざるをえない
これはよく分からない。関数型の方が綺麗に書けるか?
ちなみにPromiseとか欲しいとも思わない。主に手続き型で書いているからというのもあるとは思うが。
JavaScriptはPromiseを採用、async/awaitも検討中だ。
C#はPromiseなし、async/awaitありだ。俺はこっちの方が理解しやすいのだが、これもスタイルの違いなのか?
0986デフォルトの名無しさん
2015/11/22(日) 22:09:26.92ID:xDxhP+Cq0987デフォルトの名無しさん
2015/11/22(日) 22:09:50.22ID:fPUy/JrI> 例えば金融関係とかトレーディング等でHaskellの採用があったりする
これは知っているが、結局のところ、今Haskellが出来る=それなりの頭である事がある程度期待できる
だけであって、>>979の指摘通りで、別にHaskellが適しているわけではない気がするのだが。
> C#は汎用言語なので色々な領域の処理をする人が居て、こういった処理をしたいと望む人には欲しい機能なんだ
俺はJavaScriptをやって初めてクロージャを知り、確かに便利だと実感した。
ただもっと驚いたのは、C#も2.0からクロージャを普通に使えたことだ。
とはいえC#がクロージャをガンガン使っているイメージはない。
逆に言えば、C#のスタイルなら大して恩恵がないのだと思う。で、以下なのだが、
> タプルは自分も欲しいと思っている機能
これ何がうれしいんだ?
既に書いたが、普通に構造体やクラスでやるのと同じとしか思えない。
関数型風に書いたらタプルの方が綺麗に書けるって事?(それでも変わらない気がするが、、、、)
0988デフォルトの名無しさん
2015/11/22(日) 22:12:50.69ID:rVLRuBGqゴメンね(ゝω・)v キャピ
0989デフォルトの名無しさん
2015/11/22(日) 22:24:15.75ID:yPUHF/WV> そういった領域では実用的というより必須になる
たかが言語で必須とか…
関数型言語がない時代は、
> スクリプト等の言語作成
> 高度な文字列処理
> 科学計算を駆使
する奴は居なかったのかよ
0990デフォルトの名無しさん
2015/11/22(日) 22:29:28.42ID:fPUy/JrI誰かが俺に対して他のスレでレスを付けた場合、俺がレスを返すのならそこで返す。
だからレスをくれる奴がいるのなら、スレを選んでくれていい。(テストスレでも可)
0991デフォルトの名無しさん
2015/11/22(日) 22:41:52.29ID:iT1tZCI10992デフォルトの名無しさん
2015/11/22(日) 22:50:34.89ID:fPUy/JrIてか問題なくね?
http://www.atmarkit.co.jp/fdotnet/dotnettips/1024tuple/tuple.html
0993デフォルトの名無しさん
2015/11/22(日) 22:57:18.42ID:T8hXZH4x0994デフォルトの名無しさん
2015/11/22(日) 22:59:26.10ID:Bfhlr/Lz多重代入と引数リストへの展開ができない限りは使うべきでない
0995デフォルトの名無しさん
2015/11/22(日) 23:58:35.59ID:SVdGikuEまぁ、そのためだけに構造体とか作るの面倒くさいしな
0996デフォルトの名無しさん
2015/11/23(月) 00:24:30.36ID:NS56NU1F自分がついていけない話になるとすぐスレチだと言い出すクソガキはどこのスレにもいる。
お前が嘘を嘘と見抜けない池沼でいるのはお前の自由だが、
荒らしでないつもりなら>>1読んでスレ立てろ。
0997デフォルトの名無しさん
2015/11/23(月) 00:51:40.63ID:2bvpc+pi0998デフォルトの名無しさん
2015/11/23(月) 00:55:30.12ID:d/p1Vajdふらっと C#,C♯,C#(初心者用) Part118 [転載禁止]©2ch.net
http://peace.2ch.net/test/read.cgi/tech/1448207673/
0999デフォルトの名無しさん
2015/11/23(月) 01:36:08.01ID:5/8mbdQh1000デフォルトの名無しさん
2015/11/23(月) 02:03:44.01ID:V0PiNkF/10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
10021002
Over 1000Thread運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
http://premium.2ch.net/
http://pink-chan-store.myshopify.com/
レス数が1000を超えています。これ以上書き込みはできません。