C\#중국 괄호[]의 문법 및 역할 소개
[DllImport("kernel32.dll")]이것 은 kernel32.dll 이라는 동적 연결 라 이브 러 리 를 도입 하 는 것 입 니 다.이 동적 연결 라 이브 러 리 에는 윈도 API 함수 가 많이 포함 되 어 있 습 니 다.이 함 수 를 사용 하려 면 이렇게 도입 해 야 합 니 다.예 를 들 어:[DllImport("kernel32.dll")]private static extern void 함수 이름(매개 변수,[매개 변수]);함수 명 은 kernel 32.dll 에 속 하 는 함수 입 니 다.끝 났 으 면 너 는 그 함 수 를 사용 할 수 있다.
.NET 구성 요소 에서 현재 존재 하 는 COM 구성 요 소 를 사용 하 는 것 은.NET 에 있어 서 COM 구성 요 소 를 사용 하 는 것 이 간단 합 니 다.NET 는 COM 과 의 상호작용 을 편리 하 게 실현 하기 위해 대량의 라 이브 러 리 를 제공 했다.그 중에서 중요 한 명칭 공간 은 바로 System.Runtime.InteropServices 이다.이 이름 공간의 이름 을 통 해 우 리 는 말 그대로'상호작용 서비스'를 볼 수 있다.System.Runtime.InteropServices 라 는 이름 공간 은 COM 대상 을 조작 하 는 일련의 클래스 를 제공 합 니 다.
주의해 야 할 것 은 COM 구성 요 소 를 호출 하기 전에.NET 프로그램 에서 이름 공간:System.Runtime.InteropServices 를 참조 해 야 합 니 다.이 이름 공간 에서 제공 하 는 방법 중 하 나 를 사용 해 야 하기 때 문 입 니 다:DllImport.
예:메모리,하 드 디스크 활용 도
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace Windows.Help
{
public partial class SystemInfo : Form
{
public SystemInfo()
{
InitializeComponent();
}
[DllImport("kernel32")]
public static extern void GetWindowsDirectory(StringBuilder WinDir, int count);
[DllImport("kernel32")]
public static extern void GetSystemDirectory(StringBuilder SysDir, int count);
[DllImport("kernel32")]
public static extern void GetSystemInfo(ref CPU_INFO cpuinfo);
[DllImport("kernel32")]
public static extern void GlobalMemoryStatus(ref MEMORY_INFO meminfo);
[DllImport("kernel32")]
public static extern void GetSystemTime(ref SYSTEMTIME_INFO stinfo);
// CPU
[StructLayout(LayoutKind.Sequential)]
public struct CPU_INFO
{
public uint dwOemId;
public uint dwPageSize;
public uint lpMinimumApplicationAddress;
public uint lpMaximumApplicationAddress;
public uint dwActiveProcessorMask;
public uint dwNumberOfProcessors;
public uint dwProcessorType;
public uint dwAllocationGranularity;
public uint dwProcessorLevel;
public uint dwProcessorRevision;
}
//
[StructLayout(LayoutKind.Sequential)]
public struct MEMORY_INFO
{
public uint dwLength;
public uint dwMemoryLoad;
public uint dwTotalPhys;
public uint dwAvailPhys;
public uint dwTotalPageFile;
public uint dwAvailPageFile;
public uint dwTotalVirtual;
public uint dwAvailVirtual;
}
//
[StructLayout(LayoutKind.Sequential)]
public struct SYSTEMTIME_INFO
{
public ushort wYear;
public ushort wMonth;
public ushort wDayOfWeek;
public ushort wDay;
public ushort wHour;
public ushort wMinute;
public ushort wSecond;
public ushort wMilliseconds;
}
private void button1_Click(object sender, EventArgs e)
{
// GetWindowsDirectory GetSystemDirectory Windows
const int nChars = 128;
StringBuilder Buff = new StringBuilder(nChars);
GetWindowsDirectory(Buff, nChars);
WindowsDirectory.Text = "Windows :" + Buff.ToString();
GetSystemDirectory(Buff, nChars);
SystemDirectory.Text = " :" + Buff.ToString();
// GetSystemInfo CPU
CPU_INFO CpuInfo;
CpuInfo = new CPU_INFO();
GetSystemInfo(ref CpuInfo);
NumberOfProcessors.Text = " " + CpuInfo.dwNumberOfProcessors.ToString() + " CPU";
ProcessorType.Text = "CPU " + CpuInfo.dwProcessorType.ToString();
ProcessorLevel.Text = "CPU " + CpuInfo.dwProcessorLevel.ToString();
OemId.Text = "CPU OEM ID " + CpuInfo.dwOemId.ToString();
PageSize.Text = "CPU " + CpuInfo.dwPageSize.ToString();
// GlobalMemoryStatus
MEMORY_INFO MemInfo;
MemInfo = new MEMORY_INFO();
GlobalMemoryStatus(ref MemInfo);
MemoryLoad.Text = MemInfo.dwMemoryLoad.ToString() + "% ";
TotalPhys.Text = " " + MemInfo.dwTotalPhys.ToString() + " ";
AvailPhys.Text = " " + MemInfo.dwAvailPhys.ToString() + " ";
TotalPageFile.Text = " " + MemInfo.dwTotalPageFile.ToString() + " ";
AvailPageFile.Text = " " + MemInfo.dwAvailPageFile.ToString() + " ";
TotalVirtual.Text = " " + MemInfo.dwTotalVirtual.ToString() + " ";
AvailVirtual.Text = " " + MemInfo.dwAvailVirtual.ToString() + " ";
// GetSystemTime
SYSTEMTIME_INFO StInfo;
StInfo = new SYSTEMTIME_INFO();
GetSystemTime(ref StInfo);
Date.Text = StInfo.wYear.ToString() + " " + StInfo.wMonth.ToString() + " " + StInfo.wDay.ToString() + " ";
Time.Text = (StInfo.wHour + 8).ToString() + " " + StInfo.wMinute.ToString() + " " + StInfo.wSecond.ToString() + " ";
}
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
2.배열,색인 기 에서 의 응용type 형식.array 배열.
indexexpr 색인 표현 식.비고 배열 형식 은 뒤꿈치[]의 유형 입 니 다:int[]fib;/fib is of type int[], "array of int" fib = new int[100]; // create a 100-element int array 배열 의 한 요 소 를 방문 하려 면 필요 한 요소 의 색인 을 괄호 로 묶 습 니 다:fib[0]=fib[1]=1;for( int i=2; i <100; ++i ) fib[i] = fib[i-1] + fib[i-2]; 배열 색인 이 범 위 를 넘 으 면 이상 이 생 길 수 있 습 니 다.배열 색인 연산 자 를 다시 불 러 올 수 없습니다.단,형식 은 하나 이상 의 인 자 를 포함 하 는 색인 기와 속성 을 정의 할 수 있 습 니 다.색인 기 매개 변 수 는 네모 난 괄호 에 포함 되 어 있 지만,색인 기 매개 변 수 는 모든 종류 로 설명 할 수 있 습 니 다.(배열 색인 과 달리 배열 색인 은 정수 여야 합 니 다.)예 를 들 어.NET Framework 는 해시 표 형식 을 정의 합 니 다.이 유형 은 키 와 임의의 형식의 값 을 연결 합 니 다.Collections.Hashtable h = new Collections.Hashtable(); h["a"] = 123; // note: using a string as the index
3.괄호 는 속성 을 지정 하 는 데 사용
attribute(Allow Multiple=true)]public class Attr{}은 괄호 로 포인터 뒤의 저장 위 치 를 색인 할 수 있 습 니 다(A.2 포인터 형식 참조):unsafe fixed(int*p=fib)/p points to fib from earger example{p[0]=p[1]=1;for( int i=2; i <100; ++i ) p[i] = p[i-1] + p[i-2]; } 경계 검 사 를 실행 하지 않 습 니 다.ToolBoxItem(false)]은 IDE 도구 상자 의 컨트롤 집합 에 표시 되 지 않 음 을 표시 합 니 다.
[ParseChildren(true)]해석 기 를 알려 주 는 거 예요. 에 자리잡다,... 탭 에 있 는 내용(하위 탭)을 이 컨트롤 의 속성 으로 볼 지,키 컨트롤 의 탭 으로 볼 지 지정 합 니 다.true 여기 true 는 하위 태그 라 는 뜻 입 니 다. ToolBoxData 는 이 컨트롤 을 tool 에서 box WEBFORM 에 끌 어 다 놓 을 때 aspx 파일 의 HTML 코드 에 추 가 된 이 컨트롤 에 대한 정의여기 컨트롤 은:kjgridview {0}컨트롤 표시 접두사 입 니 다. 바로 당신 이 이 컨트롤 을 페이지 에 맡 겼 을 때 입 니 다. 그 는 자동 으로<{0}:Div runat=server>를 추가 합 니 다. 이{0}은 당신 이 정의 한 것 입 니 다.
1、[StandardParameter(“ProcessID“)]
2、[System.Web.Services.WebMethod(EnableSession=true)]
3、[Guid(“D301882E-46D1-4e83-BF15-67028B94A68D“)]
4、[Category(“Drp“)]
5、[DBDefineAttribute(“Banks.XML“)]
[Serializable]
6、[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
이런 것들 은 유형 이나 방법의 속성 이다.이것 은 대형 소프트웨어 개발 에 매우 유용 하 다.예 를 들 어 프로젝트 에 사용 할 모듈 이 통용 되 기 때문에 우 리 는 이 를 따로 추출 하여 컨트롤 을 만 들 수 있다.이때 유형 이나 방법의 속성 이 유용 하 다.이런 것들 을 더 하면 컨트롤 류 가 사용 할 때 해당 하 는 열 알림 등 이 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JavaScript 에서 괄호()와 괄호[]의 특수 용법 의문 풀이텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.