C# 비망록1
소개
업무에서 C#을 사용하고 있을 때 막힌 곳이나 잊기 쉬운 곳을 비망록으로 썼습니다.
스레드와 작업에서 양식을 조작하면 오류가 발생합니다.
따라서 Invoke를 사용합니다.
예: 텍스트 상자(textBox)의 이름을 변경하는 경우
sample.cs
//フォーム上のテキストをChangedに変更
this.Invoke(new Action<string>(this.TextChange),"Changed");
//フォーム上のテキストボックスを変更する関数
private void TextChange(string text)
{
this.textBox.Text = text;
}
Invoke는 인수의 유무로 다음과 같이 구분한다.
//引数なし
this.Invoke(new Action(関数));
//引数あり
this.Invoke(new Action<引数の型名>(関数),引数);
인수가 없으면 람다 식을 사용하여 다음과 같이 작성하면 유용합니다.
//引数なし
this.Invoke(new Action(() => {処理}));
예: 100ms를 기다립니다.
System.Threading.Thread.Sleep(100)
using을 사용하는 경우 using System.Threading;을 선언하고,
다음과 같이 한다.
//100ミリ秒待機
Thread.Sleep(100)
기본적으로 양식을 사용하기 때문에 곧 잊어 버린다.
//文字
string hoge1 = Console.Read();
//1行分
string hoge2 = Console.ReadLine();
입력과 같아서 곧 잊어버린다
string hoge = "test";
//改行なし出力
Console.Write(hoge);
//改行あり出力
Console.WriteLine(hoge);
리소스에 정의되어 있어도 사용할 수 있으므로 편리합니다.
string hoge = "test";
Console.WriteLine(string.Format("「{0}」",test);
출력 결과: "test"
C의 union을 C#에서도 사용할 수 있는 것 같아서.
같은 메모리 영역을 복수의 형태가 공유할 수 있으므로, 매우 편리.
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Explicit)]
public struct UnionData
{
//0バイト目
[FieldOffset(0)]
public byte zero;
//1バイト目
[FieldOffset(1)]
public byte one;
//2バイト目
[FieldOffset(2)]
public byte two;
//3バイト目
[FieldOffset(3)]
public byte three;
//float型
[FieldOffset(0)]
public float floatData;
//int型
[FieldOffset(0)]
public int intData;
}
공용체를 사용한 샘플
//共用体の宣言
UnionData data = new UnionData();
//int型にのみ値を代入
data.intData = 1094861636;
//それぞれの値を出力
//0バイト目
Console.WriteLine(Convert.ToChar(data.zero));
//1バイト目
Console.WriteLine(Convert.ToChar(data.one));
//2バイト目
Console.WriteLine(Convert.ToChar(data.two));
//3バイト目
Console.WriteLine(Convert.ToChar(data.three));
//int型
Console.WriteLine(string.Format("int = {0:d}",data.intData));
//float型
Console.WriteLine(string.Format("float = {0:0.000000}", data.floatData));
출력 결과
결론
아직, 모르는 일이나 모르는 것이 많기 때문에, 공부하지 않으면 안됩니다…
데이터베이스도 공부하고 싶다 ...
Reference
이 문제에 관하여(C# 비망록1), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/p1ro3/items/77479f246a1f994d69f3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)