C#

2013-07-29 4 views
0

에있는 모든 피연산자 목록 매우 간단한 질문 : C#에서 모든 피연산자 목록을 얻는 방법? 예 :C#

{ "return", "break", "if", "case", "switch", ... }; 

더 어려운 질문 : 방법 ALL 기능 (유형, 방법)의 목록을 얻는 방법?

{ "string", "Math.Abs", "double.IsNaN", "int.ToString", ... }; 

나는 에 대한 인텔리 (매우 가난하고 더러운 일) 된 CodeDom 같은 것을 만들고 싶어. 따라서 사용자는 코드를 텍스트로 추가하여 소프트웨어 기능을 확장 할 수 있습니다. 나는 그에게 그가 사용할 수있는 특정한 주장을 가진 함수 몸을 제공하지만, 그는 또한 어떤 표준 함수, 예를 들면 double.ToString()이나 Math.PI을 사용할 수 있어야한다. 그는 RichTextEditor에 코드를 입력합니다. 그리고 구문을 쉽게 볼 수 있도록하고 싶습니다 (알려진 피연산자, 대괄호 열기, 닫는 방법, 함수 매개 변수 강조 표시).

나는 이미 단어 (매개 변수)를 강조 표시 할 수 있지만 멋지게 보이지만 모든 것을 강조 표시하는 것은 멋지다. 그리고 필자는 이것을 피연산자/펑틴/타입/메소드의리스트를 얻는 것으로 봅니다. 필자는 어떻게해야하는지 모릅니다 (모든 피연산자를 배열로 직접 입력 할 수 있습니다).

이 질문을 다시 말해야합니까? 내 IntelliSense를 만드는 방법은 무엇입니까? :-)

피씨 : 빠른 결과는 나에게도 하나의 결과를 제공하지 못했고, 실제로 내가 찾고있는 것을 공식화하는 데 문제가 있습니다.

+1

[MSDN 명세서 키워드 (http://msdn.microsoft.com/en-us/library/xt4z8b0f.aspx). "더 어려운 질문"에 관해서는 포함 된 파일을 반영하고 어떤 유형/기능이 포함되어 있는지 확인할 수 있습니다 (실제로 그렇게하고 싶은지 전혀 모르겠지만 ...). 당신의 마지막 질문에 관해서는, "내 IntelliSence를 만드는 방법", 그건 너무 넓은 질문입니다. – tnw

+2

피연산자의 경우 가장 쉬운 해결책은 아마도 하드 코딩하는 것입니다 (그다지 많지 않습니다). 함수 정의의 경우, 포함 된 파일을 읽고 함수를 찾기 위해 파서를 작성해야 할 필요가있을 것입니다. 이는 많은 작업입니다. – IanPudney

+1

Roslyn을 사용하십시오. [Intellisense-Roslyn, VSTA 또는 다른 것을 사용하는 C#/VB.Net 편집기가 내장되어 있습니다.] (http://stackoverflow.com/questions/12818041/built-in-c-vb-net)의 복사본으로 닫으십시오. -editor-with-intellisense-roslyn-vsta-or-something-else) – jason

답변

5

키워드의 경우 사양 또는 MSDN으로 이동합니다. 예 : here - IIRC에는 몇 가지의 간략한 누락이 있지만 많은 키워드가 문맥이 (의미 : 항상 키워드가 아닐 수도 있음)이며 키워드는 이스케이프 처리 될 수 있습니다 (string @int = "evil";).

"모든 기능"의 경우 ... 음, assembly.GetTypes(), type.GetMethods() 등이 있습니다. "루프"입니다.

+0

ಠ_ fol 당신이 지금 당장 파고 들기 때문에 사람들을위한 검색 엔진처럼 행동하는 시간을 낭비하는 대신 [이 사람의 질문을보십시오] (http://stackoverflow.com/questions/17926186/byte-array- union-overlay-in-c-sharp-structlayout- 명시 적). 당신은 그의 유일한 희망일지도 모릅니다. – Will

+0

감사합니다. 따라서 하드 코드 된 피연산자 목록, 생성 된 함수 목록 및 일부 검사 ('@'및 문자열)가 그 방법입니다. 나는 복잡한 또는 고급 코딩 사용자로부터 기대하지 않습니다. 나는 단지 평범한 텍스트보다 더 멋진 무언가를 만들고 싶다. – Sinatr

+0

'AppDomain.CurrentDomain.GetAssemblies()','... GetTypes()','... GetMethods()'루프를 사용하여 목록을 얻는 것이 트릭을 할 것 같습니다. 그러나, 가비지보고있는 유형과 메소드 이름이 있지만, 필터하는 방법을 알아 내야합니다. 감사. – Sinatr

2

당신에 대해 물어하고 두 가지있다 :

  1. C#을 키워드 - a list is available at the C# documentation.
  2. 닷넷 클래스 - - 이러한 int, return, breakstring 같은 것들이 Int32 같은 것들이다, Math , 및 String - a list is available at the C# documentation.
+0

Net Framework 클래스 라이브러리의 하드 코드 된 목록을 만들 수는 있지만 너무 많습니다. = D이 목록을 프로그래밍 방식으로 받아 들여야합니다. – Sinatr