문제

나는 최근에 그것을 읽었습니다 boost::statechart 도서관 (유한 상태 기계)과 나는 개념을 좋아했습니다.

C#에는 비슷한 메커니즘이 있습니까? 아니면 특정 설계 패턴을 사용하여 구현할 수 있습니까?

도움이 되었습니까?

해결책

예, C#은 있습니다 반복자 블록 컴파일러 생성 상태 머신입니다.

자신의 상태 머신을 구현하려면 사용자 정의 구현을 만들 수 있습니다. IEnumerable<T> 그리고 IEnumerator<T> 인터페이스.

이 두 가지 접근 방식은 .NET 프레임 워크의 구현을 강조합니다. 반복자 패턴.

다른 팁

.NET 4 업데이트 1은 이제 다음 클래스에서 지원합니다.System.Activities.Statements.StateMachine

여기에 있습니다 사용 방법에 대한 튜토리얼. 여기에 있습니다 실험실의 손.

워크 플로 파운데이션 (.NET 3.0) 상태 기계 워크 플로가 있습니다. 4.0은 현재 정확히 같은 것을 가지고 있지 않지만 4.0을 사용하여 상태 기계 워크 플로우를 확실히 만들 수 있습니다.

나는 .net을위한 일반적인 유한 상태 기계를 (무엇보다) 구현하는 오픈 소스 프로젝트를 유지합니다. 그것은 위에 지어졌습니다 QuickGraph, 따라서 많은 그래프 분석 알고리즘을 무료로 얻을 수 있습니다.

보다 이 페이지 프로젝트에 대한 자세한 내용, 구체적으로 "JOLT.AUTOMATA : 유한 상태 기계"이 기능에 대한 자세한 내용은.

SANTELESS->를 확인하십시오 http://code.google.com/p/stateless/. 무거운 WWF에 대한 가벼운 대안입니다.

다음은 도구의 저자의 몇 가지 기사입니다.

도메인 모델의 상태 기계

SANTELES의 매개 변수 트리거 및 재진입 상태

FSM에 가까운 것은 .NET 3.5의 워크 플로이지만 워크 플로는 정확히 FSM이 아닙니다.

FSM을 사용하는 힘은 FSM을 만들 수 있다는 것입니다. 명시 적으로 코드에서 버그를 만들 가능성이 적습니다. 게다가 물론 일부 시스템은 본질적으로 FSM이므로 코딩하는 것이 더 자연 스럽습니다.

3.0 및 3.5의 기본 클래스 라이브러리의 일부인 Wind

다가오는 4.0 릴리스를 위해 워크 플로우를 완전히 다시 작성했으며 새로운 WF 4.0 클래스는 기본적으로 상태 매치를 지원하지는 않지만 3.0/3.5 클래스는 모두 4.0 미만으로 완전히 지원됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top