「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■関連スレ
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part139
https://mevius.5ch.net/test/read.cgi/tech/1533466544/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/
■情報源
https://msdn.microsoft.com/ja-jp/library/gg145045.aspx
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
ふらっと C#,C♯,C#(初心者用) Part140
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 9e9f-LwdJ)
2018/10/04(木) 18:56:38.41ID:JnxMNCXd0484デフォルトの名無しさん (ブーイモ MMb3-OD9P)
2018/11/10(土) 09:52:04.57ID:HbWc37XyM Split使えば配列に変換してくれるでしょ
485デフォルトの名無しさん (ササクッテロル Spcd-WqUE)
2018/11/10(土) 09:59:03.63ID:sUbsN3PYp Splitメソッドで配列に格納するところまではできてますが、その後の要素数の異なる配列を
xmlやjsonの要素に入れる際の処理のコードが腫れ上がって困ってます。
配列の要素数のパータンに応じて
If (配列の要素数=3){…}
else If(配列の要素数=4){…}
else If(配列の要素数=5){…}
のように
配列の要素数に応じてコード量が
多くなってしまいます。
他に処理の仕方はございますか?
xmlやjsonの要素に入れる際の処理のコードが腫れ上がって困ってます。
配列の要素数のパータンに応じて
If (配列の要素数=3){…}
else If(配列の要素数=4){…}
else If(配列の要素数=5){…}
のように
配列の要素数に応じてコード量が
多くなってしまいます。
他に処理の仕方はございますか?
486デフォルトの名無しさん (ササクッテロル Spcd-WqUE)
2018/11/10(土) 10:31:22.39ID:sUbsN3PYp If(3<配列の要素>7){
オブジェクト名.xmlのタグ名1= 配列名[0];
オブジェクト名.xmlのタグ名2= 配列名[1];
オブジェクト名.xmlのタグ名3= 配列名[3];
オブジェクト名.xmlのタグ名4= 配列名[4];
オブジェクト名.xmlのタグ名5= 配列名[5];
}
のようにすると
配列の要素数とxmlのタグ数が違う場合にエラーがでてしまいます。
例えば上記のコードだと
配列の要素数が5以外の場合はエラーになります
オブジェクト名.xmlのタグ名1= 配列名[0];
オブジェクト名.xmlのタグ名2= 配列名[1];
オブジェクト名.xmlのタグ名3= 配列名[3];
オブジェクト名.xmlのタグ名4= 配列名[4];
オブジェクト名.xmlのタグ名5= 配列名[5];
}
のようにすると
配列の要素数とxmlのタグ数が違う場合にエラーがでてしまいます。
例えば上記のコードだと
配列の要素数が5以外の場合はエラーになります
487デフォルトの名無しさん (ワッチョイ d9e3-7vdd)
2018/11/10(土) 10:46:41.57ID:kamloJld0488デフォルトの名無しさん (ササクッテロル Spcd-WqUE)
2018/11/10(土) 11:21:38.15ID:sUbsN3PYp ルコード
namespace Sample.model
{
public class PersonModel
{
/// <summary>
/// ID
/// </summary>
[System.Xml.Serialization.XmlAttribute("id")]
public String ID { get; set; }
/// <summary>
/// 名前
/// </summary>
[System.Xml.Serialization.XmlElement("firstname")]
public String FirstName { get; set; }
/// <summary>
/// 苗字
/// </summary>
[System.Xml.Serialization.XmlElement("lastname")]
public String LastName { get; set; }
/// <summary>
/// 誕生日
/// </summary>
[System.Xml.Serialization.XmlElement("birthday")]
public String Birthday { get; set; }
}
}
namespace Sample.model
{
public class PersonModel
{
/// <summary>
/// ID
/// </summary>
[System.Xml.Serialization.XmlAttribute("id")]
public String ID { get; set; }
/// <summary>
/// 名前
/// </summary>
[System.Xml.Serialization.XmlElement("firstname")]
public String FirstName { get; set; }
/// <summary>
/// 苗字
/// </summary>
[System.Xml.Serialization.XmlElement("lastname")]
public String LastName { get; set; }
/// <summary>
/// 誕生日
/// </summary>
[System.Xml.Serialization.XmlElement("birthday")]
public String Birthday { get; set; }
}
}
489デフォルトの名無しさん (ササクッテロル Spcd-WqUE)
2018/11/10(土) 11:23:23.72ID:sUbsN3PYp ファイルを読み込み処理
.
.
string data =1行ずつ読み込みこんだデータ;
string xml[]= data.Split(,);
/シリアライズする為のPersonsインスタンスを生成
Sample.model.PersonsModel model = new Sample.model.PersonsModel();
model.Persons = new List<Sample.model.PersonModel>();
//インスタンスに値を設定
// Persons1
Sample.model.PersonModel person1 = new Sample.model.PersonModel();
If (3<配列の要素数<8){
person1.ID = data[0];
person1.FirstName = [1];
person1.LastName = [2];
person1.Birthday = [3];
model.Persons.Add(person1);
}
//出力先XMLのストリーム
System.IO.FileStream stream = new System.IO.FileStream(@"D:\DATA\EXPORT.XML", System.IO.FileMode.Create);
System.IO.StreamWriter writer = new System.IO.StreamWriter(stream, System.Text.Encoding.UTF8);
//シリアライズ
System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeof(Sample.model.PersonsModel));
serializer.Serialize(writer, model);
writer.Flush();
writer.Close();
.
.
string data =1行ずつ読み込みこんだデータ;
string xml[]= data.Split(,);
/シリアライズする為のPersonsインスタンスを生成
Sample.model.PersonsModel model = new Sample.model.PersonsModel();
model.Persons = new List<Sample.model.PersonModel>();
//インスタンスに値を設定
// Persons1
Sample.model.PersonModel person1 = new Sample.model.PersonModel();
If (3<配列の要素数<8){
person1.ID = data[0];
person1.FirstName = [1];
person1.LastName = [2];
person1.Birthday = [3];
model.Persons.Add(person1);
}
//出力先XMLのストリーム
System.IO.FileStream stream = new System.IO.FileStream(@"D:\DATA\EXPORT.XML", System.IO.FileMode.Create);
System.IO.StreamWriter writer = new System.IO.StreamWriter(stream, System.Text.Encoding.UTF8);
//シリアライズ
System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeof(Sample.model.PersonsModel));
serializer.Serialize(writer, model);
writer.Flush();
writer.Close();
490デフォルトの名無しさん (アウアウウー Sa05-8u3a)
2018/11/10(土) 11:26:08.88ID:q+mWhUVWa >>483
var data = File.ReadAllLines("path/to/file.csv")
.Select(line => line.Split(","));
var jsonText = Newtonsoft.Json.JsonConvert.SerializeObject(data);
var data = File.ReadAllLines("path/to/file.csv")
.Select(line => line.Split(","));
var jsonText = Newtonsoft.Json.JsonConvert.SerializeObject(data);
491デフォルトの名無しさん (ササクッテロル Spcd-WqUE)
2018/11/10(土) 11:27:19.41ID:sUbsN3PYp person1.ID = data[0];
person1.FirstName = [1];
person1.LastName = [2];
person1.Birthday = [3];
model.Persons.Add(person1);
}
ここの処理に困っています。
この場合は読み込みだデータの配列の要素数が4以外の場合エラーになります。
エラー原因は要素が4未満の場合は
指定したxmlのタグの数に満たないためだと考えられます
person1.FirstName = [1];
person1.LastName = [2];
person1.Birthday = [3];
model.Persons.Add(person1);
}
ここの処理に困っています。
この場合は読み込みだデータの配列の要素数が4以外の場合エラーになります。
エラー原因は要素が4未満の場合は
指定したxmlのタグの数に満たないためだと考えられます
492デフォルトの名無しさん (ササクッテロル Spcd-WqUE)
2018/11/10(土) 11:28:55.94ID:sUbsN3PYp 間違えました
data[0]ではなく
xml[0] でした
data[0]ではなく
xml[0] でした
493デフォルトの名無しさん (ササクッテロル Spcd-WqUE)
2018/11/10(土) 11:33:51.32ID:sUbsN3PYp >490
ご指摘ありがとうございます。
要素数が異なる配列を
xmlタグ要素に入れる処理の
ご指摘を頂けると幸いです。
読み込んだ1行のデータの配列の要素が異なる場合の処理はどのように書くのがスマートでしょうか?
ご指摘ありがとうございます。
要素数が異なる配列を
xmlタグ要素に入れる処理の
ご指摘を頂けると幸いです。
読み込んだ1行のデータの配列の要素が異なる場合の処理はどのように書くのがスマートでしょうか?
494デフォルトの名無しさん (アウアウウー Sa05-I2rI)
2018/11/10(土) 12:23:15.91ID:h+MQ7FTQa >>491
要素が足りない場合に、Birthdayなどをどう書き込むべきかによる
何かしらの既定値を書き込みたいなら
string GetOrDefault(string[] xml, int index, string defaultValue)
{
if (0 <= index && index < xml.Length) { return xml[index]; }
return defaultValue;
}
のような補助メソッド作って
person1.Birthday = GetOrDefault(xml, 3, "1000/01/01");
のように取得する
要素が足りない場合にはBirthdayなどを書き込まないなら
xml出力の方では、PersonModelクラスのメンバーにDefaultValue属性を付けて
その属性で指定した値を格納しておけば書き出されなくなる
JSONの方も同じように書き出さないように出来ると思う
要素が足りない場合に、Birthdayなどをどう書き込むべきかによる
何かしらの既定値を書き込みたいなら
string GetOrDefault(string[] xml, int index, string defaultValue)
{
if (0 <= index && index < xml.Length) { return xml[index]; }
return defaultValue;
}
のような補助メソッド作って
person1.Birthday = GetOrDefault(xml, 3, "1000/01/01");
のように取得する
要素が足りない場合にはBirthdayなどを書き込まないなら
xml出力の方では、PersonModelクラスのメンバーにDefaultValue属性を付けて
その属性で指定した値を格納しておけば書き出されなくなる
JSONの方も同じように書き出さないように出来ると思う
495デフォルトの名無しさん (ドコグロ MM1d-7vdd)
2018/11/10(土) 12:35:22.80ID:2+OzQsKxM >>493
サルなの?
仕様も決めないでどうやるもこうやるもねぇよ
じゃあ、全部key,valueでいいよ
csvに存在するすべての要素をkey,valueで出せ
keyのフォーマットはcolumn-rowな
xmlでのタグ名はdata
属性はkeyとvalue
サルなの?
仕様も決めないでどうやるもこうやるもねぇよ
じゃあ、全部key,valueでいいよ
csvに存在するすべての要素をkey,valueで出せ
keyのフォーマットはcolumn-rowな
xmlでのタグ名はdata
属性はkeyとvalue
496デフォルトの名無しさん (アウアウウー Sa05-8u3a)
2018/11/10(土) 13:04:57.13ID:q+mWhUVWa >>493
var persons = File.ReadAllLines("file.csv")
.Select(line => { var a = line.Split(","); Array.Resize(ref a, PROP_COUNT); return a; })
.Select(a => new Person() {
ID = a[0],
Name = a[1],
...,
LastProp = a[PROP_COUNT - 1]
});
var json = JsonConvert.SerializeObject(persons);
var persons = File.ReadAllLines("file.csv")
.Select(line => { var a = line.Split(","); Array.Resize(ref a, PROP_COUNT); return a; })
.Select(a => new Person() {
ID = a[0],
Name = a[1],
...,
LastProp = a[PROP_COUNT - 1]
});
var json = JsonConvert.SerializeObject(persons);
497デフォルトの名無しさん (ワッチョイ 4b33-mDL8)
2018/11/10(土) 15:54:29.53ID:48CyTBFD0 jsonって名前=値ペアの連想配列は順序が保証されないので
順序を保証したい場合は配列で囲って [{名前: 値}{名前: 値}] みたくすると思うんですが、
データ保存用途として見た場合使い難くないですかね?
シリアライズした時も処理系によって順序が保証されないから単純diff比較も使えずパースして比較する必要がありますよね
これって問題にならないんですか?
順序を保証したい場合は配列で囲って [{名前: 値}{名前: 値}] みたくすると思うんですが、
データ保存用途として見た場合使い難くないですかね?
シリアライズした時も処理系によって順序が保証されないから単純diff比較も使えずパースして比較する必要がありますよね
これって問題にならないんですか?
498デフォルトの名無しさん (ワッチョイ 31b3-uQDt)
2018/11/10(土) 16:48:27.38ID:gqodC/ga0 名前と値で取れるんだから、順序関係ないだろ?
499デフォルトの名無しさん (ワッチョイ 31b3-uQDt)
2018/11/10(土) 16:49:31.82ID:gqodC/ga0 つか、シリアライズした結果がいつでも同じだと思うのか?
500デフォルトの名無しさん (ワッチョイ 93b3-Mdza)
2018/11/10(土) 17:04:14.17ID:hLxIIZfE0 >>498
テキストだからdiffしたいって言うのは割とよくある要望
テキストだからdiffしたいって言うのは割とよくある要望
501デフォルトの名無しさん (ワッチョイ 4b33-mDL8)
2018/11/10(土) 18:05:23.42ID:48CyTBFD0 たとえばweb屋なら画面のチェックボックスとかの状態をjsonでデータ管理するとして
そのデータから設定仕様書とかを起こす時に困るんじゃないかな
なんかここだけアルゴリズム依存で時代と逆行してるような気がしてイマイチなんですよ
そのデータから設定仕様書とかを起こす時に困るんじゃないかな
なんかここだけアルゴリズム依存で時代と逆行してるような気がしてイマイチなんですよ
502デフォルトの名無しさん (ササクッテロル Spcd-uQDt)
2018/11/10(土) 18:07:52.91ID:/C4Raf5+p んなもん仕様書の書き方次第だろ。
503デフォルトの名無しさん (ワッチョイ 41eb-K50l)
2018/11/10(土) 18:26:43.69ID:ZJVvB/9K0 なんかよくわからないけど、このJSON君はお金出して誰かに作ってもらったほうがいいんじゃねえの?
504デフォルトの名無しさん (ラクッペ MM6d-0mwj)
2018/11/10(土) 18:31:49.77ID:jXgJ1KMYM JSONがイマイチだというお前の小言にこのスレはつき合わなければならないのか?
C#に関係ないんだが
C#に関係ないんだが
505デフォルトの名無しさん (ワッチョイ d9e3-7vdd)
2018/11/10(土) 18:41:55.53ID:kamloJld0 俺もjsonはイマイチだと思う
要素があるのかないのかわからん
要素があるのかないのかわからん
506デフォルトの名無しさん (ラクッペ MM6d-0mwj)
2018/11/10(土) 18:45:43.38ID:jXgJ1KMYM507デフォルトの名無しさん (ブーイモ MM45-OD9P)
2018/11/10(土) 18:56:12.67ID:Y9Dl3F80M 自宅の壁にでも書いてろ
508デフォルトの名無しさん (ワッチョイ 8981-zc6X)
2018/11/10(土) 19:01:40.71ID:/crW2tCF0 c#とオブジェクト指向の勉強にオススメの本ありますか?
今まで組み込みのcばっかやってきたので、こっちの世界の定石みたいなものを身に付けたいのです
今まで組み込みのcばっかやってきたので、こっちの世界の定石みたいなものを身に付けたいのです
509デフォルトの名無しさん (アウアウウー Sa05-8u3a)
2018/11/10(土) 19:22:15.67ID:q+mWhUVWa >>508
1冊ならAdaptive Code C#実践開発手法
1冊ならAdaptive Code C#実践開発手法
510デフォルトの名無しさん (ワッチョイ 19b3-YP9l)
2018/11/10(土) 21:28:30.80ID:lx5S0cHm0 >>491
jsonいじらないと細かいことわからんけど
while とswitchつかうとか?
繰り返す回数はxml.length
i=0の場合はperson1.ID=data[0]
エラーは配列が存在しないから出てるんじゃね
jsonいじらないと細かいことわからんけど
while とswitchつかうとか?
繰り返す回数はxml.length
i=0の場合はperson1.ID=data[0]
エラーは配列が存在しないから出てるんじゃね
511デフォルトの名無しさん (ワッチョイ e19d-otFY)
2018/11/12(月) 20:04:46.62ID:q8PdpD4Q0 public List< string > textsplit(string strdata) {
var ls = new List<string>();
ls.Add("1"); ld.Add("2");
return ls;
}
関数内部でNewしてそれを戻しても問題ない?
var ls = new List<string>();
ls.Add("1"); ld.Add("2");
return ls;
}
関数内部でNewしてそれを戻しても問題ない?
512デフォルトの名無しさん (ワッチョイ 7917-Nrm4)
2018/11/12(月) 20:15:33.08ID:fLLyDCF20 問題ない
513デフォルトの名無しさん (ササクッテロル Spcd-uQDt)
2018/11/12(月) 20:23:24.20ID:NInYtJ3Hp あーC#ならね。
514デフォルトの名無しさん (ワッチョイ 41eb-AS2U)
2018/11/12(月) 20:29:35.59ID:Fg4ONeCp0 それって他の言語だとまずいん?
515デフォルトの名無しさん (ササクッテロル Spcd-uQDt)
2018/11/12(月) 20:33:45.12ID:NInYtJ3Hp ガベコレの無い言語だと、作った人が解放する掟に反するから、ひと悶着あるんだよなw
516デフォルトの名無しさん (アウアウエー Sa23-2y03)
2018/11/12(月) 20:37:51.48ID:8vdHE86ca スタックに自動変数で確保した領域のポインタを返すのは普通はバグだよね
C#はそれが起らないから問題ない
C#はそれが起らないから問題ない
517デフォルトの名無しさん (ササクッテロル Spcd-uQDt)
2018/11/12(月) 20:48:26.07ID:NInYtJ3Hp518デフォルトの名無しさん (ブーイモ MMb3-/quP)
2018/11/12(月) 20:50:44.04ID:4IQEu5KyM これがアウトなら、C言語のmalloc関数等は存在そのものがアウトという理屈になるな
519デフォルトの名無しさん (ワッチョイ e19d-otFY)
2018/11/12(月) 21:02:40.60ID:q8PdpD4Q0 戻した後で使うんだが使うのが翌日になっても大丈夫?
1日に一回だけUPする場合、そういう可能性がある。そのときにガベージコレクション
されて無くなってるってことない? 関数を抜けてるので。
1日に一回だけUPする場合、そういう可能性がある。そのときにガベージコレクション
されて無くなってるってことない? 関数を抜けてるので。
520デフォルトの名無しさん (アウアウエー Sa23-2y03)
2018/11/12(月) 21:06:30.48ID:8vdHE86ca >>517
レジスタ渡し?
レジスタ渡し?
521デフォルトの名無しさん (ワッチョイ 93e3-Nrm4)
2018/11/12(月) 21:26:19.59ID:sWgkDKTV0 >>519
関数抜けてても戻り値受けてる変数がいきてるならガベージコレクションの対象にはならないんじゃね?
関数抜けてても戻り値受けてる変数がいきてるならガベージコレクションの対象にはならないんじゃね?
522デフォルトの名無しさん (スッップ Sdb3-hh7/)
2018/11/12(月) 21:39:50.73ID:ce53GWJ3d 翌日だとアウトになるような仕組みなら1秒後でもアウトになる可能性あるじゃん
523デフォルトの名無しさん (ワッチョイ 89fa-JV4m)
2018/11/12(月) 22:11:23.36ID:k/0PxRaR0 Listみたいな参照型は実体はヒープに確保されてスタック上にあるのはそれを指すポインタだけ
ガベージコレクションされる可能性があるのは関数を抜けた時ではなくそのオブジェクトへの参照が1つもなくなった時
親関数が戻り値を受け取る事で新たに参照が出来るので、子関数が終了しても消えない
ガベージコレクションされる可能性があるのは関数を抜けた時ではなくそのオブジェクトへの参照が1つもなくなった時
親関数が戻り値を受け取る事で新たに参照が出来るので、子関数が終了しても消えない
524デフォルトの名無しさん (アウアウエー Sa23-ApEQ)
2018/11/12(月) 22:28:48.44ID:JxfhNlMua >>523
違う。それで済むならGCなどという大層な仕組みは必要なく、単なる参照カウンタで十分。
循環参照の場合は、オブジェクト参照まだ残っていてもGC対象となる必要がある。
正しくは、GCされる可能性があるのは、スタックまたはstaticフィールドから参照を辿れなくなったときだよ。
違う。それで済むならGCなどという大層な仕組みは必要なく、単なる参照カウンタで十分。
循環参照の場合は、オブジェクト参照まだ残っていてもGC対象となる必要がある。
正しくは、GCされる可能性があるのは、スタックまたはstaticフィールドから参照を辿れなくなったときだよ。
525デフォルトの名無しさん (アウアウカー Sa9d-Gc0T)
2018/11/12(月) 23:52:29.85ID:D6ILV7Jxa526デフォルトの名無しさん (アウアウエー Sa23-2y03)
2018/11/13(火) 00:05:00.82ID:1GLtCoZ4a527デフォルトの名無しさん (ワッチョイ 2b81-6bMw)
2018/11/13(火) 00:23:31.91ID:lWwaeoUH0 そう、C#ならね
528デフォルトの名無しさん (ワッチョイ f9c3-uQDt)
2018/11/13(火) 00:39:11.71ID:7xmY+SYc0 >>520
そう、アセンブラレベルで見ると、戻り値はR0レジスタとか決まってたりする。
そう、アセンブラレベルで見ると、戻り値はR0レジスタとか決まってたりする。
529デフォルトの名無しさん (アウアウエー Sa23-2y03)
2018/11/13(火) 00:44:34.29ID:1GLtCoZ4a >>528
そういう問題じゃないんですがw
そういう問題じゃないんですがw
530デフォルトの名無しさん (ワッチョイ b37e-YP9l)
2018/11/13(火) 00:45:20.73ID:p27/Ddjo0 なぜARMの呼出規約みたいな話が出てくるのか
ヒープへのポインタでスタックすら関係ないし
ヒープへのポインタでスタックすら関係ないし
531デフォルトの名無しさん (ワッチョイ e19d-otFY)
2018/11/13(火) 01:19:58.69ID:ADQqJemu0 Methodを渡すのになんでFunc<string,int> fnc みたいになったの?
string Func <string> fncの方が分かりやすいと思うが、、
string Func <string> fncの方が分かりやすいと思うが、、
532デフォルトの名無しさん (アウアウカー Sa9d-Gc0T)
2018/11/13(火) 02:01:53.20ID:bZ0HXQ7Xa >>526
ポインタや参照返してたらC#もCも危険性変わらんよ。
ガベコレされるまで危険なのは同じ。
と言うかポインタは普通返さない。
void関数なりメソッドで入力用のポインタ(参照)と出力用のポインタ(参照)を引数に取る。
ポインタや参照返してたらC#もCも危険性変わらんよ。
ガベコレされるまで危険なのは同じ。
と言うかポインタは普通返さない。
void関数なりメソッドで入力用のポインタ(参照)と出力用のポインタ(参照)を引数に取る。
533デフォルトの名無しさん (ワッチョイ 93d2-GPPb)
2018/11/13(火) 02:06:18.61ID:kG9DLvmd0 >>531
そんな記法C#には存在しないし、入れ子の場合はどうすんのさ
そんな記法C#には存在しないし、入れ子の場合はどうすんのさ
534デフォルトの名無しさん (アウアウエー Sa23-2y03)
2018/11/13(火) 02:12:38.95ID:1GLtCoZ4a535デフォルトの名無しさん (アウアウカー Sa9d-Gc0T)
2018/11/13(火) 02:20:42.52ID:bZ0HXQ7Xa536デフォルトの名無しさん (アウアウエー Sa23-2y03)
2018/11/13(火) 02:24:11.95ID:1GLtCoZ4a だから、普通はそんなことしませんて...
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13118051728
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13118051728
537デフォルトの名無しさん (ワッチョイ f9c3-uQDt)
2018/11/13(火) 02:26:43.91ID:7xmY+SYc0 >>534
それじゃあ>511と問題が違うだろw
だから、ポインターの戻り値なんてレジスタで帰るから気にすんなって話。それにnewしたオブジェクトはヒープに取られるんだから、スタックだって気にしなくていいぞ。
それじゃあ>511と問題が違うだろw
だから、ポインターの戻り値なんてレジスタで帰るから気にすんなって話。それにnewしたオブジェクトはヒープに取られるんだから、スタックだって気にしなくていいぞ。
538デフォルトの名無しさん (アウアウカー Sa9d-Gc0T)
2018/11/13(火) 02:28:55.08ID:bZ0HXQ7Xa んで、今度は呼び出元全部がchar[20]と同じに(1回目も2回目も2回目と同じ値に変化する?)なりかねないので、通常
void int_to_str(int x,char* str)
{
sprintf(str, "%d", x);
}
と言うふうに、出力用のポインタ引数用意する。
void int_to_str(int x,char* str)
{
sprintf(str, "%d", x);
}
と言うふうに、出力用のポインタ引数用意する。
539デフォルトの名無しさん (アウアウカー Sa9d-Gc0T)
2018/11/13(火) 02:31:57.72ID:bZ0HXQ7Xa >>536
言ってること同じやん( ´Д`)y━・~~
言ってること同じやん( ´Д`)y━・~~
540デフォルトの名無しさん (アウアウエー Sa23-2y03)
2018/11/13(火) 02:32:00.35ID:1GLtCoZ4a541デフォルトの名無しさん (アウアウエー Sa23-2y03)
2018/11/13(火) 02:34:25.29ID:1GLtCoZ4a542デフォルトの名無しさん (アウアウエー Sa23-2y03)
2018/11/13(火) 02:38:05.39ID:1GLtCoZ4a たぶん>>537の人はポインタと左辺値の区別がついてないんじゃないのかな。
これはポインタって言葉の使い方が混乱してるからしょうがないけど
それともそもそもスタックとかポインタの意味が分かってないのか
これはポインタって言葉の使い方が混乱してるからしょうがないけど
それともそもそもスタックとかポインタの意味が分かってないのか
543デフォルトの名無しさん (ワッチョイ b37e-YP9l)
2018/11/13(火) 02:38:54.17ID:p27/Ddjo0 C#のnewに相当するのはC++でもnewだし、C#でもstackallocでスタック配列は可能
しかもローカル変数のアドレスを取得し返すコードもunsafeならビルドできる
返すものが抜けるスタックだと不正なのはレジスタも呼出規約も言語も関係ない
C++でもお行儀はともかく適切にdeleteすれば済むし、C#ならGCが回収するってだけ
>>531
戻り値たるintとかどっかいってる上に奇妙な文法増えちゃうよ
しかもローカル変数のアドレスを取得し返すコードもunsafeならビルドできる
返すものが抜けるスタックだと不正なのはレジスタも呼出規約も言語も関係ない
C++でもお行儀はともかく適切にdeleteすれば済むし、C#ならGCが回収するってだけ
>>531
戻り値たるintとかどっかいってる上に奇妙な文法増えちゃうよ
544デフォルトの名無しさん (アウアウカー Sa9d-Gc0T)
2018/11/13(火) 02:49:42.48ID:bZ0HXQ7Xa545デフォルトの名無しさん (スッップ Sdb3-RZyg)
2018/11/13(火) 07:44:20.95ID:4VfxC09pd ピクチャーボックスに書いた線の座標を配列にいてれおいて、右クリックの時に一つ前に書いた線を消したい時って再描画させるにはどうしたら出来ますか?
配列の最後を消して配列要素分ループして書いても書けず、前の書いた線が残りっぱなしでやり方が分かりません。
配列の最後を消して配列要素分ループして書いても書けず、前の書いた線が残りっぱなしでやり方が分かりません。
546デフォルトの名無しさん (ワッチョイ d9e3-Nrm4)
2018/11/13(火) 07:56:39.45ID:OewfmfIr0547デフォルトの名無しさん (スッップ Sdb3-RZyg)
2018/11/13(火) 09:19:44.70ID:4VfxC09pd548デフォルトの名無しさん (ワッチョイ 53f9-ZY2y)
2018/11/13(火) 09:43:33.96ID:r8TlMUhn0 >>547
線を書くときに上書きされた背景などの部分も含めて書き直す。
線を書くときに上書きされた背景などの部分も含めて書き直す。
549デフォルトの名無しさん (アウアウエー Sa23-2y03)
2018/11/13(火) 12:26:10.47ID:oXvGF3Wua >>545
なんか、何回も同じようなこと聞いてない?
private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right) pictureBox1.Invalidate();
}
そんで描画処理はPaintイベントに書く
Windowsの描画の基本は、他のウィンドウが重なるなどして描画した絵が消されたら
(無効化されたら)その都度再描画。
プログラムの都合で再描画が必要な場合がInvalidate()等を呼んで強制的に無効化する。
PictureBoxは無効化されたら自動で背景色か背景画像で塗りつぶされるはず。
だから前に書いた線を消す必要はない
なんか、何回も同じようなこと聞いてない?
private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right) pictureBox1.Invalidate();
}
そんで描画処理はPaintイベントに書く
Windowsの描画の基本は、他のウィンドウが重なるなどして描画した絵が消されたら
(無効化されたら)その都度再描画。
プログラムの都合で再描画が必要な場合がInvalidate()等を呼んで強制的に無効化する。
PictureBoxは無効化されたら自動で背景色か背景画像で塗りつぶされるはず。
だから前に書いた線を消す必要はない
550デフォルトの名無しさん (ワッチョイ 31b3-FeaG)
2018/11/14(水) 21:51:00.00ID:wbMCB4xt0 XORで線引くと、もう一度XORでなぞると元に戻る。
これなら古いのを再描画する必要がない
これなら古いのを再描画する必要がない
551デフォルトの名無しさん (ワッチョイ 4b33-mDL8)
2018/11/14(水) 22:33:05.99ID:3L2XIs1L0 XORはグレー背景に弱いから真面目に線引くこと考えた方がいい
552デフォルトの名無しさん (アウアウカー Sa85-ZFLo)
2018/11/15(木) 03:05:16.76ID:lNkjj0jra メモリ上にビットマップ展開、そこに描画して画面はメモリ上のビットマップを表示するだけ。
画面の大きさ分のビットマップでメモリ喰うけど、再描画に時間取られない。
画面の大きさ分のビットマップでメモリ喰うけど、再描画に時間取られない。
553デフォルトの名無しさん (ワンミングク MM5a-fJZ0)
2018/11/15(木) 06:20:27.21ID:Hpd5UC3KM 懐かしい
554デフォルトの名無しさん (ワッチョイ ca9f-maOp)
2018/11/15(木) 07:16:16.62ID:AUtHx5s50 前に画面の選択範囲のスクリーンショットとる機能作った時に一番苦労したのが
選択範囲を示すための四角の点線をうまく表示することだったわ
選択範囲を示すための四角の点線をうまく表示することだったわ
555デフォルトの名無しさん (アウアウカー Sa85-ZFLo)
2018/11/15(木) 12:43:10.25ID:lNkjj0jra556デフォルトの名無しさん (ワッチョイ a5b3-aXY0)
2018/11/15(木) 12:59:29.31ID:0i/BmJkF0 今はテクスチャだから四角形プリミティブ重ねればいいのだけ。
557デフォルトの名無しさん (アウアウエー Sab2-mgxK)
2018/11/15(木) 13:22:50.19ID:lrjlJOeNa558デフォルトの名無しさん (アウアウカー Sa85-ZFLo)
2018/11/15(木) 13:23:12.34ID:lNkjj0jra Direct2Dとかだっけ。
触った事ないなぁ。。。
ペイントっぽいアプリとか程度だったら、どっちが楽なんだろ。。。
触った事ないなぁ。。。
ペイントっぽいアプリとか程度だったら、どっちが楽なんだろ。。。
559デフォルトの名無しさん (アウアウカー Sa85-ZFLo)
2018/11/15(木) 13:29:33.73ID:lNkjj0jra >>557
ううむ。そうか。
でもウィンドウが重なったらXOR以前に再描画するものが消えてるんだが。。。
確かに翁とか愛称ついてるあたり古い考えの人だった気もするが、当時でも有効だったなら
今では解像度はタブレット以下が多い割にメモリ積み放題だし、昔より手軽な割に有効だと思うんだが。。。
ううむ。そうか。
でもウィンドウが重なったらXOR以前に再描画するものが消えてるんだが。。。
確かに翁とか愛称ついてるあたり古い考えの人だった気もするが、当時でも有効だったなら
今では解像度はタブレット以下が多い割にメモリ積み放題だし、昔より手軽な割に有効だと思うんだが。。。
560デフォルトの名無しさん (アウアウカー Sa85-ZFLo)
2018/11/15(木) 13:33:22.82ID:lNkjj0jra561デフォルトの名無しさん (ワッチョイ 869a-2AkZ)
2018/11/15(木) 19:09:16.78ID:qi3FyInE0 画像描画の話題そのものはいいとしてコントロールの描画とImageプロパティへの描画と画面への描画の区別がついていない人がいる気がする
元の質問は「初期化しろ」で終わっているからどうでもいいんだろうけど
元の質問は「初期化しろ」で終わっているからどうでもいいんだろうけど
562デフォルトの名無しさん (ワッチョイ 3e67-sNvt)
2018/11/17(土) 17:07:48.79ID:eS8uuMhZ0563デフォルトの名無しさん (ワッチョイ be8a-maOp)
2018/11/17(土) 17:19:03.08ID:8wpf7s1e0 >>562
プログラム言語というより、数学の知識があるかないかじゃない?幾何学とか、行列とか
プログラム言語というより、数学の知識があるかないかじゃない?幾何学とか、行列とか
564デフォルトの名無しさん (ワッチョイ be8a-maOp)
2018/11/17(土) 17:21:21.05ID:8wpf7s1e0 それを踏まえて、Windowsで動かしたいならC#の親和性が高いし、
UIをブラウザにしたいならC#でなくてもいいし。
UIをブラウザにしたいならC#でなくてもいいし。
565デフォルトの名無しさん (アウアウエー Sab2-2qly)
2018/11/17(土) 17:37:36.65ID:rc62Vrp5a566デフォルトの名無しさん (ワッチョイ 3e67-sNvt)
2018/11/17(土) 17:55:07.29ID:eS8uuMhZ0 言語は何でもいいんですね
じゃあC#で頑張ってみます
フィボナッチなんとかでしたっけか
じゃあC#で頑張ってみます
フィボナッチなんとかでしたっけか
567デフォルトの名無しさん (アウアウイー Sa2d-4yv2)
2018/11/17(土) 17:58:49.17ID:bZFmP2aXa568デフォルトの名無しさん (アウアウエー Sab2-2qly)
2018/11/17(土) 18:03:29.40ID:rc62Vrp5a569デフォルトの名無しさん (ワッチョイ 3e67-sNvt)
2018/11/17(土) 18:10:45.85ID:eS8uuMhZ0 であれば向いているのは、pythonよりはc#ということになりますか?(ただのイメージですが)
570デフォルトの名無しさん (ワッチョイ cd8a-9Fzi)
2018/11/17(土) 18:25:34.63ID:tg8QC7+S0 openGLなら素直にCとかC++使った方がいいとは思う
できるできないじゃなくて初心者なら単純に調べ易さが大事やろ
できるできないじゃなくて初心者なら単純に調べ易さが大事やろ
571デフォルトの名無しさん (ワッチョイ 3e67-sNvt)
2018/11/17(土) 18:28:18.79ID:eS8uuMhZ0 c#でdirectxやopenGlを使うのは一般的ではないということでしょうか?
cとかc++は超難易度が高いと聞くのでどうなのかなと思ってました
cとかc++は超難易度が高いと聞くのでどうなのかなと思ってました
572デフォルトの名無しさん (ブーイモ MMf1-2qly)
2018/11/17(土) 18:31:24.61ID:/a1P+H3qM C#ならUnity3D使えばいい
できるどころではなく、現代において3Dプログラミングをするなら最も初心者が入りやすい選択だ
できるどころではなく、現代において3Dプログラミングをするなら最も初心者が入りやすい選択だ
573デフォルトの名無しさん (ワッチョイ cd8a-9Fzi)
2018/11/17(土) 18:38:39.23ID:tg8QC7+S0 >>571
最近は知らないけどあくまでC/C++用ライブラリのラッパーがあるだけだから
変なところでつまづく可能性あるのがつまんないじゃん
実装が中途半端だったりするのもあるから
webに転がってるサンプルがそのまま動いた方が楽やろ
C/C++は深みはまれば無限の闇だけどシンプルに使う分にはなにも難しくない
だって大半のプログラマはCから入ってるんだし
Unityは全く知らんからその辺は別の人に
最近は知らないけどあくまでC/C++用ライブラリのラッパーがあるだけだから
変なところでつまづく可能性あるのがつまんないじゃん
実装が中途半端だったりするのもあるから
webに転がってるサンプルがそのまま動いた方が楽やろ
C/C++は深みはまれば無限の闇だけどシンプルに使う分にはなにも難しくない
だって大半のプログラマはCから入ってるんだし
Unityは全く知らんからその辺は別の人に
574デフォルトの名無しさん (ワッチョイ 3e67-sNvt)
2018/11/17(土) 18:41:57.34ID:eS8uuMhZ0575デフォルトの名無しさん (アウアウウー Sa91-OesL)
2018/11/18(日) 10:42:50.75ID:PoFSPoaKa asp.net core 2.1 MVCの検証属性
Javaだと検証属性にgroupsを設定できるのだがasp.net coreには同等の機能は存在しない?
Javaだと検証属性にgroupsを設定できるのだがasp.net coreには同等の機能は存在しない?
576デフォルトの名無しさん (スプッッ Sdca-FO3/)
2018/11/18(日) 11:57:32.69ID:ve9l0Wxid >>575
具体的に何がしたいの?
具体的に何がしたいの?
577デフォルトの名無しさん (アウアウウー Sa91-OesL)
2018/11/18(日) 12:12:56.71ID:PoFSPoaKa >>576
押したボタンによって検証定義を変えたいのだけど検証のグルーピングって他に使い道あったっけ?
押したボタンによって検証定義を変えたいのだけど検証のグルーピングって他に使い道あったっけ?
578デフォルトの名無しさん (ブーイモ MMea-2qly)
2018/11/18(日) 12:18:03.17ID:XN88gtNzM >>577
諦めてFluent Validationとか使えば
諦めてFluent Validationとか使えば
579デフォルトの名無しさん (ワッチョイ ca8a-sEjg)
2018/11/19(月) 05:43:43.79ID:r5HrKoSb0 コーディングしてて思うけど変数名とかつけるのがめちゃ難しい
dataとかinfoとか抽象的で何を指してるのかわからんようにならないように
意を示すような単語を探したいが探しきれない
csvファイルを読み込んだバイナリデータを受けとる変数名とかstreamって名前にすべきなのか?
dataとかinfoとか抽象的で何を指してるのかわからんようにならないように
意を示すような単語を探したいが探しきれない
csvファイルを読み込んだバイナリデータを受けとる変数名とかstreamって名前にすべきなのか?
580デフォルトの名無しさん (ドコグロ MM72-rrJU)
2018/11/19(月) 07:18:33.39ID:bSg94FGhM >>579
日本語のカタカナのアルファベット表記でよい
お前の脳みそがなんの辞書も持ち合わせていない雑魚だった場合
全クラスの全変数の数分その都度エキサイト翻訳にかける工数が必要になる
1000個以上あればもちろん1000回以上だ
つまり、雑魚なお前はそのくだらん作業で工数の大半を食い潰す
日本語アルファベット表記で妥協しろ
日本語のカタカナのアルファベット表記でよい
お前の脳みそがなんの辞書も持ち合わせていない雑魚だった場合
全クラスの全変数の数分その都度エキサイト翻訳にかける工数が必要になる
1000個以上あればもちろん1000回以上だ
つまり、雑魚なお前はそのくだらん作業で工数の大半を食い潰す
日本語アルファベット表記で妥協しろ
581デフォルトの名無しさん (アウアウウー Sa91-OesL)
2018/11/19(月) 07:47:24.91ID:SGbs8fwRa >>579
変数名で悩む前にスコープを短くすればいいのでは?
変数名で悩む前にスコープを短くすればいいのでは?
582デフォルトの名無しさん (ワッチョイ 09e3-9Fzi)
2018/11/19(月) 08:00:47.12ID:OxHzXIEP0 >>579
変数名は変数管理台帳に登録してあるのしか使っちゃだめだよ
変数名は変数管理台帳に登録してあるのしか使っちゃだめだよ
583デフォルトの名無しさん (ブーイモ MM2e-SJl5)
2018/11/19(月) 08:05:33.08ID:hJCk5pq9M 業務データを扱ってて直感的に理解したいときには変数名を日本語にしてる。
エディタ操作面で色々不便だけど。
エディタ操作面で色々不便だけど。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 [蚤の市★]
- 【広島】「万引きした人を追跡」コンビニ店員の男性(46)を果物ナイフで刺したか 中国籍の少年(17)を殺人未遂容疑で現行犯逮捕 [ぐれ★]
- 【地震】青森県で震度6強 長周期地震動も 津波注意報すべて解除 ★7 [ぐれ★] [ぐれ★]
- 【サッカー】58歳カズ「オファーが来ている」 J3福島と近日中にも交渉 早ければ年内にも決断 [征夷大将軍★]
- 【速報】気象庁は津波注意報すべて解除 [蚤の市★]
- 【実況】博衣こよりのえちえち朝こよ🧪
- ヨッシー、ヘイホー、テレサ ←こいつらwwwwwwwww
- 【悲報】高市早苗の擬人化がXで大バズりwwwwwwwwwwww [455031798]
- さかまた「過呼吸になった」かなた「耳聞こえない」ござる「声出ない」まつり「ご飯食べれない」
- くそしてかがやけ
- 一人暮らしだからケツ出してみてるけど
