PosSharp v1.2.0 API Reference
---
#### [PosSharp\.Core](PosSharp.Core 'PosSharp\.Core')
### [PosSharp\.Core](PosSharp.Core 'PosSharp\.Core').[AtomicState<TState>](PosSharp.Core.AtomicState_TState_ 'PosSharp\.Core\.AtomicState\')
## AtomicState\\.Transition\(Func\\) Method
アトミックに状態を遷移させます。
[transform](PosSharp.Core.AtomicState_TState_.Transition(System.Func_TState,TState_).md#PosSharp.Core.AtomicState_TState_.Transition(System.Func_TState,TState_).transform 'PosSharp\.Core\.AtomicState\\.Transition\(System\.Func\\)\.transform') は CAS の競合時に複数回呼び出される可能性があるため、
副作用のない純粋関数である必要があります。
```csharp
public PosSharp.Core.StateTransitionResult Transition(System.Func transform);
```
#### Parameters
`transform` [System\.Func<](https://learn.microsoft.com/en-us/dotnet/api/system.func-2 'System\.Func\`2')[TState](PosSharp.Core.AtomicState_TState_#PosSharp.Core.AtomicState_TState_.TState 'PosSharp\.Core\.AtomicState\\.TState')[,](https://learn.microsoft.com/en-us/dotnet/api/system.func-2 'System\.Func\`2')[TState](PosSharp.Core.AtomicState_TState_#PosSharp.Core.AtomicState_TState_.TState 'PosSharp\.Core\.AtomicState\\.TState')[>](https://learn.microsoft.com/en-us/dotnet/api/system.func-2 'System\.Func\`2')
現在の状態を受け取り、新しい状態を返す変換関数。
同一参照を返した場合、遷移は行われません。
#### Returns
[PosSharp\.Core\.StateTransitionResult<](PosSharp.Core.StateTransitionResult_TState_ 'PosSharp\.Core\.StateTransitionResult\')[TState](PosSharp.Core.AtomicState_TState_#PosSharp.Core.AtomicState_TState_.TState 'PosSharp\.Core\.AtomicState\\.TState')[>](PosSharp.Core.StateTransitionResult_TState_ 'PosSharp\.Core\.StateTransitionResult\')
遷移結果。
#### Exceptions
[System\.ArgumentNullException](https://learn.microsoft.com/en-us/dotnet/api/system.argumentnullexception 'System\.ArgumentNullException')
[transform](PosSharp.Core.AtomicState_TState_.Transition(System.Func_TState,TState_).md#PosSharp.Core.AtomicState_TState_.Transition(System.Func_TState,TState_).transform 'PosSharp\.Core\.AtomicState\\.Transition\(System\.Func\\)\.transform') が null の場合。