Generische Enum-Parameter in C#?C#

Ein Treffpunkt für C#-Programmierer
Guest
 Generische Enum-Parameter in C#?

Post by Guest »

Ich möchte eine generische Klasse erstellen, um eine Animation auf einem beliebigen 3D-Modell abzuspielen

Code: Select all

public class AnimationController {

public void ChangeAnimation(string animation, int priority = 0, float crossfadeDuration = 0.2f, float animationSpeed = 1f) {
if(priority is higher && this animation isn't already playing) {
model.PlayAnimation(animation);
}
}

}
Anstelle eines String-Typs als ersten Parameter möchte ich jedoch eine Aufzählung verwenden, aber keinen bestimmten Aufzählungstyp wie „FireballAnimation“ als Parameter:< /p>

Code: Select all

public void ChangeAnimation(FireballAnimation animation)
denn dann ist die Klasse nicht mehr modular^
Und ich würde es vorziehen, die .ToString()-Methode nicht jedes Mal aufzurufen, wenn ich ChangeAnimation( aufrufen möchte )
Ich möchte, dass Folgendes in derselben Codebasis möglich ist:

Code: Select all

// In the context of a fireball class:
public enum FireballAnimation {
Casted,
Flying,
Impact,
}

AnimationController.ChangeAnimation(FireballAnimation.Impact);

// In the context of a Player class:
public enum PlayerAnimation {
None,
Idle,
Walking,
StrafingLeft,
StrafingRight,
WalkingBackwards,
Jumping,
Casting,
}

AnimationController.ChangeAnimation(PlayerAnimation.Jumping);
^Dies ist nur möglich, wenn der erste Parameter der ChangeAnimation-Methode irgendwie von einem generischen Enum-Typ ist. Ist das in C# möglich?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post