using System.Windows.Forms;
namespace WindowsFormsApp_searching
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
label1.Text = Properties.Resources.TestString;
pictureBox1.Image = Properties.Resources.myImage;
}
}
}
1. 프로젝트 오른쪽 클릭하고 속성을 눌러줍니다.
2. 리소스 탭을 클릭하면 기본 문자열에 대해 입력이 가능해집니다.
3. 문자열 외에도 여러 리소스를 등록할 수 있습니다. (이미지 등록 등은 드래그 앤 드롭해서 사용해주면 됩니다!)
Process.Start 혹은 Process 클래스를 구현하여 사용하여 프로그램 실행이 가능합니다.
아래는 엑셀, 텍스트 문서를 열은 예제입니다.
using System;
using System.Diagnostics;
using System.IO;
namespace ConsoleApp
{
class Program
{
public static void Main(string[] args)
{
Process process = new Process();
/* 프로그램 실행 시키고 기다리기.
Process pro = Process.Start("...");
pro.WaitForExit();
*/
Console.WriteLine("[Excel] 프로세스 시작!");
process.StartInfo.Arguments = Path.Combine(Directory.GetCurrentDirectory(), "test.xlsx");
process.StartInfo.FileName = "excel.exe";
process.StartInfo.UseShellExecute = true; //엑셀 실행 시 UseShellExecute 필요!
process.Start();
process.WaitForExit();
//위와 동일한 작업을 합니다!
//Process pro = Process.Start(new ProcessStartInfo("excel.exe", Path.Combine(Directory.GetCurrentDirectory(), "test.xlsx")) { UseShellExecute = true });
//pro.WaitForExit();
Console.WriteLine("[Excel] 프로세스 종료!");
Console.WriteLine("[notepad] 프로세스 시작!");
process.StartInfo.Arguments = Path.Combine(Directory.GetCurrentDirectory(), "test.txt");
process.StartInfo.FileName = "notepad.exe";
process.Start();
process.WaitForExit();
Console.WriteLine("[notepad] 프로세스 종료!");
}
}
}
TestRequestDto 소스 (Setter 가 있어야 값 적용이 가능합니다. - lombok 사용)
@Setter
class TestRequestDto
{
private String a;
private String b;
//lombok Setter
//public void setA (String a) { this.a = a; }
//public void setB (String b) { this.b = b; }
public void Show () {
System.out.println(String.format("a: %s\nb: %s", a, b));
}
}
1. json 으로 통신
클라이언트)
ContentType = application/json
data = {
a : "123",
b : "456",
}
서버) @RequestBody 가 사용되면 json 통신
@PostMapping("/test")
public Long TestRequest (@RequestBody TestRequestDto requestDto) {
requestDto.Show(); //결과 값 보려고 만든 함수
System.out.println("요청 들어왔습니다~~");
return 1L;
}
2. x-www-form-urlencoded 으로 통신
클라이언트)
ContentType = application/x-www-form-urlencoded
data = "a=123&b=456"
서버) @RequestBody 를 지워줍니다.
@PostMapping("/test")
public Long TestRequest (TestRequestDto requestDto) {
requestDto.Show(); //결과 값 보려고 만든 함수
System.out.println("요청 들어왔습니다~~");
return 1L;
}
클래스, 구조체 등 내부 값이 있는 경우에 IComparer<T> 를 이용하여 비교하여 정렬이 가능합니다.
using System;
using System.Collections.Generic;
namespace ConsoleApp
{
class Program
{
class DescCompare : IComparer<Data>
{
//작으면 -1, 같으면 0, 크면 1
//반대인 경우는 Asc 가능
public int Compare(Data data1, Data data2)
{
return data1.A < data2.A ? -1 : 1;
}
}
class Data
{
public int A { get; set; }
public string B { get; set; }
}
static void PrintList (List<Data> datas, string message)
{
Console.WriteLine(message);
foreach (Data data in datas)
{
Console.WriteLine(string.Format("{0}) {1}", data.A, data.B));
}
}
public static void Main(string[] args)
{
List<Data> datas = new List<Data>();
datas.Add(new Data { A = 30, B = "Test30" });
datas.Add(new Data { A = 20, B = "Test20" });
datas.Add(new Data { A = 10, B = "Test10" });
PrintList(datas, "정렬 전");
datas.Sort(new DescCompare());
PrintList(datas, "정렬 후");
}
}
}