public void TryParseT(string value, bool ignoreCase, bool expectedSuccess, Chipmonks expectedResult) { bool success = EnumEx.TryParse(value, ignoreCase, out Chipmonks result); Assert.AreEqual(expectedSuccess, success); Assert.AreEqual(expectedResult, result); }
public void WhenISpecifyAnEthnicity(string ethnicity) { var ethnicityEnum = EnumEx.GetValueFromDescription <Ethnicity>(ethnicity); ScenarioContext.Current.Get <SearchImages>("request") .WithEthnicity((Ethnicity)Enum.Parse(typeof(Ethnicity), ethnicityEnum.ToString())); }
public void WhenISpecifyAProductType(string producttype) { var productType = EnumEx.GetValueFromDescription <ProductType>(producttype); ScenarioContext.Current.Get <SearchImages>("request") .WithProductType((ProductType)Enum.Parse(typeof(ProductType), productType.ToString())); }
public void WhenISpecifyANoneNumberOfPeopleInImage(string peopleCount) { var peoplecount = EnumEx.GetValueFromDescription <NumberOfPeople>(peopleCount); ScenarioContext.Current.Get <SearchImages>("request") .WithNumberOfPeople((NumberOfPeople)Enum.Parse(typeof(NumberOfPeople), peoplecount.ToString())); }
public void WhenISpecifyAnAgeOfPeople(string ageOfPeople) { var aop = EnumEx.GetValueFromDescription <AgeOfPeople>(ageOfPeople); ScenarioContext.Current.Get <SearchImages>("request") .WithAgeOfPeople((AgeOfPeople)Enum.Parse(typeof(AgeOfPeople), aop.ToString())); }
/// <summary> /// 傳送給目標玩家(玩家插槽) /// </summary> /// <param name="type">伺服器訊息種類</param> /// <param name="sk">目標玩家的插槽</param> /// <param name="inMsg">已封裝的訊息</param> private void SendToSocket(ServerMessageType type, Socket sk, string inMsg) { string code = EnumEx.GetOrderByEnum(type).ToString(); byte[] byteDatas = Encoding.Default.GetBytes(code + ">" + inMsg); SendToClient(sk, byteDatas); }
/// <summary> /// 局面をbod形式に変換します。 /// </summary> /// <example> /// 後手の持駒:飛 角 金 銀 桂 香 歩四 /// 9 8 7 6 5 4 3 2 1 /// +---------------------------+ /// |v香v桂 ・ ・ ・ ・ ・ ・ ・|一 /// | ・ ・ ・ 馬 ・ ・ 龍 ・ ・|二 /// | ・ ・v玉 ・v歩 ・ ・ ・ ・|三 /// |v歩 ・ ・ ・v金 ・ ・ ・ ・|四 /// | ・ ・v銀 ・ ・ ・v歩 ・ ・|五 /// | ・ ・ ・ ・ 玉 ・ ・ ・ ・|六 /// | 歩 歩 ・ 歩 歩v歩 歩 ・ 歩|七 /// | ・ ・ ・ ・ ・ ・ ・ ・ ・|八 /// | 香 桂v金 ・v金 ・ ・ 桂 香|九 /// +---------------------------+ /// 先手の持駒:銀二 歩四 /// 手数=171 ▲6二角成 まで /// /// 後手番 /// </example> public static string BoardToBod(Board board) { if (board == null || !board.Validate()) { throw new ArgumentException("board"); } var result = new List <string>(); var type = BoardTypeUtil.GetBoardTypeFromBoard(board); if (type != BoardType.None) { result.Add("手合割:" + EnumEx.GetLabel(type)); } else { result.Add("後手の持駒:" + HandToBod(board, BWType.White)); result.Add(" 9 8 7 6 5 4 3 2 1"); result.Add("+---------------------------+"); result.AddRange( Enumerable.Range(1, Board.BoardSize) .Select(_ => RankToBod(board, _))); result.Add("+---------------------------+"); result.Add("先手の持駒:" + HandToBod(board, BWType.Black)); result.Add("手数=" + board.MoveCount); if (board.Turn == BWType.White) { result.Add("後手番"); } } return(string.Join("\n", result)); }
/// <summary> /// Método en el cual se calcula la operación. /// </summary> /// <param name="ElAnilloProcesado">Anillo que presenta el anillo como se recibe de la operación anterior.</param> /// <param name="elPlano">Anillo que representa el plano que ingresó el usuario.</param> public void CrearOperacion(Anillo ElAnilloProcesado, Anillo elPlano) { //Asignamos el valor del anillor procesado al anillo de la operación. anilloProcesado = ElAnilloProcesado; //Agregamos el texto con las instrucciones de la operación. //TextoProceso = "Diámetro: " + String.Format("{0:0.00000}", Diameter) + Environment.NewLine; //TextoProceso += "Thickness: " + String.Format("{0:0.0000}", Thickness); //Para los NNSI siempre es el programa 44. noPrograma = 44; //If Width(mm) <= 1.2 : 10, Else Width(mm) > 1.5 : 15 noStrokes = Module.ConvertTo(EnumEx.GetEnumDescription(DataManager.TipoDato.Distance), EnumEx.GetEnumDescription(DataManager.UnidadDistance.Inch), EnumEx.GetEnumDescription(DataManager.UnidadDistance.Milimeter), elPlano.H1.Valor) <= 1.2 ? 10 : 15; TextoProceso = "PROG. \" " + noPrograma + " \" " + noStrokes + " STROKES" + Environment.NewLine; TextoProceso += "*LAP" + Environment.NewLine; //Fijo para los tipos NNSI TextoProceso += "LAPEAR EL DIAMETRO EXTERIOR PARA" + Environment.NewLine; TextoProceso += "OBTENER UNA PISTA CONTINUA EN LOS 360" + Environment.NewLine; TextoProceso += "GRADOS DEL ANILLO" + Environment.NewLine; //Ejecutamos el método para calculo de Herramentales. BuscarHerramentales(); //Ejecutamos el método para calcular los tiempos estándar. CalcularTiemposEstandar(); }
private Herramental herramentalBarrelGrade() { ObservableCollection <Herramental> listaBarrelGrade = new ObservableCollection <Herramental>(); DataManager.GetALLBarrelLapAnillos_("", out listaBarrelGrade); double diametroAnillo = elPlano.D1.Valor; Herramental barrelIdeal = new Herramental(); string fracc = string.Empty; foreach (Herramental barrel in listaBarrelGrade) { //Module.ConvertFracToDecimal() fracc = barrel.PropiedadesCadena[0].Valor; double deci = Convert.ToDouble(Module.ConvertFracToDecimal(fracc)); double tope = 0; if (deci <= diametroAnillo) { if (deci > tope) { tope = deci; barrelIdeal = barrel; barrelIdeal.Encontrado = true; } } } diametroAnillo = Module.ConvertTo(EnumEx.GetEnumDescription(DataManager.TipoDato.Distance), elPlano.D1.Unidad, EnumEx.GetEnumDescription(DataManager.UnidadDistance.Inch), elPlano.D1.Valor); barrelIdeal.DescripcionRuta = "BARREL " + diametroAnillo; return(barrelIdeal); }
/// <summary> /// 指定の座標値に駒台上の駒があればそれを取得します。 /// </summary> private BoardPiece PointToCapturedPiece(Point pos) { var bwTypeN = PointToCapturedBox(pos); if (bwTypeN == null) { return(null); } var bwType = bwTypeN.Value; foreach (var pieceType in EnumEx.GetValues <PieceType>()) { var center = CapturedPieceToPoint(pieceType, bwType); var rect = new Rect( center.X - CellSize.Width / 2, center.Y - CellSize.Height / 2, CellSize.Width, CellSize.Height); if (rect.Contains(pos)) { return(new BoardPiece(pieceType, false, bwType)); } } return(null); }
private void Apply(RobotRotated evt) { var robot = GetRobot(evt.Name).Value.UpdateCompassPoint( EnumEx.MapByStringValue <Contracts.CompassPoint, CompassPoint>(evt.CompassPoint)); _robots[evt.Name] = robot; }
/// <summary> /// 駒台上に表示する描画用の駒を設定します。 /// </summary> /// <remarks> /// 盤上の駒と違って、駒台上の駒はプロパティで表示・非表示などを /// 切り替えるため、駒の移動ごとに追加・削除をする必要はありません。 /// </remarks> private void SyncCapturedPieceObject(bool forceUpdate) { if (Board == null) { return; } // 駒箱に入る駒を初期化します。 InitKomaboxPieceCount(); // 先に駒を削除します。 ClearCapturedPieceObjects(); // 駒箱・先手・後手用の駒台にある駒を用意します。 EnumEx.GetValues <BWType>().ForEachWithIndex((bwType, index) => { if (EditMode != EditMode.Editing && bwType == BWType.None) { // 局面編集モード以外では、駒箱の駒は表示しません。 this.capturedPieceObjectList[index] = new List <PieceObject>(); } else { this.capturedPieceObjectList[index] = EnumEx.GetValues <PieceType>() .Select(_ => CreateCapturedPieceObject(_, bwType)) .ToList(); // 駒台に表示します。 this.capturedPieceObjectList[index] .Where(_ => _.Piece.PieceType != PieceType.None) .ForEach(_ => this.capturedPieceContainer.Children.Add(_.ModelGroup)); } }); }
/// <summary> /// 获取下拉框的显示枚举集合 /// </summary> /// <param name="context">提供格式上下文</param> /// <returns>包含标准有效值集的 TypeConverter.StandardValuesCollection;如果数据类型不支持标准值集,则为null</returns> public override System.ComponentModel.TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) { try { if (context == null) { return(base.GetStandardValues(context)); } if (context.PropertyDescriptor.PropertyType.IsEnum) { List <FieldInfoEx> dbiItems = EnumEx.GetEnumFieldInfoExList(context.PropertyDescriptor.PropertyType); var enumItems = (from item in dbiItems select item.Value).ToArray(); return(new StandardValuesCollection(enumItems)); } else { if (context.Instance.GetType().GetInterface(_ipropertyGridDropDownListType.FullName) != null && context.Instance != null) { System.Collections.ICollection collection = ((IPropertyGridDropDown)context.Instance).GetPropertyGridDropDownItems(context.PropertyDescriptor.Name); if (collection != null) { return(new StandardValuesCollection(collection)); } } return(null); } } catch (Exception ex) { Loger.Error(ex); return(null); } }
public void EnumerateValues_TEnumIsNotAnEnum_ThrowsException() { Should.Throw <ArgumentException>(() => { EnumEx.EnumerateValues <int>(); }); }
public void BuscarHerramentales() { Propiedad gapMin = Module.GetPropiedad("s1 Min", elPlano.PerfilPuntas.Propiedades); Propiedad gapMax = Module.GetPropiedad("s1 Max", elPlano.PerfilPuntas.Propiedades); double gapMinInch = Module.ConvertTo(EnumEx.GetEnumDescription(DataManager.TipoDato.Distance), gapMin.Unidad, EnumEx.GetEnumDescription(DataManager.UnidadDistance.Inch), gapMin.Valor); double gapMaxInch = Module.ConvertTo(EnumEx.GetEnumDescription(DataManager.TipoDato.Distance), gapMax.Unidad, EnumEx.GetEnumDescription(DataManager.UnidadDistance.Inch), gapMax.Valor); double gapMedida = Math.Round((gapMinInch + gapMaxInch) / 2, 3); double d1 = Module.ConvertTo(EnumEx.GetEnumDescription(DataManager.TipoDato.Distance), elPlano.D1.Unidad, EnumEx.GetEnumDescription(DataManager.UnidadDistance.Inch), elPlano.D1.Valor); List <Herramental> bushingAndDisco = DataManager.GetBushingAndDiscoThompsonSegmentos(gapMedida, d1); Herramental bushing = bushingAndDisco[0]; Herramental disco = bushingAndDisco[1]; ListaHerramentales.Add(bushing); ListaHerramentales.Add(disco); double medidaBushing = bushing.Propiedades[0].Valor; Herramental clampPlate = DataManager.GetClampPlateThompsonSegmentos(medidaBushing); Herramental backUp = DataManager.GetBackUpRingThompsonSegmentos(medidaBushing); double medidaBackUp = backUp.Propiedades[0].Valor; Herramental platoEmpujador = DataManager.GetPlatoEmpujadorThompsonSegmentos(medidaBushing); Herramental tuboEnrollador = DataManager.GetTuboEnrolladorThompsonSegmentos(medidaBackUp); ListaHerramentales.Add(clampPlate); ListaHerramentales.Add(backUp); ListaHerramentales.Add(platoEmpujador); ListaHerramentales.Add(tuboEnrollador); TextoHerramienta = Module.GetTextoListaHerramentales(ListaHerramentales); }
public void GetValueAndStringValueTest() { var actual = EnumEx.GetValueAndStringValue <DayOfWeek>() .ToList(); Assert.Equal(7, actual.Count); Assert.Equal("Sunday", actual[0].Value); Assert.Equal(DayOfWeek.Sunday, actual[0].Key); Assert.Equal("Monday", actual[1].Value); Assert.Equal(DayOfWeek.Monday, actual[1].Key); Assert.Equal("Tuesday", actual[2].Value); Assert.Equal(DayOfWeek.Tuesday, actual[2].Key); Assert.Equal("Wednesday", actual[3].Value); Assert.Equal(DayOfWeek.Wednesday, actual[3].Key); Assert.Equal("Thursday", actual[4].Value); Assert.Equal(DayOfWeek.Thursday, actual[4].Key); Assert.Equal("Friday", actual[5].Value); Assert.Equal(DayOfWeek.Friday, actual[5].Key); Assert.Equal("Saturday", actual[6].Value); Assert.Equal(DayOfWeek.Saturday, actual[6].Key); }
/// <summary> /// 傳送給目標玩家(玩家名稱) /// </summary> /// <param name="type">伺服器訊息種類</param> /// <param name="playerName">玩家名稱</param> /// <param name="inMsg">已封裝的訊息</param> private void SendToPlayer(ServerMessageType type, string playerName, string inMsg) { string code = EnumEx.GetOrderByEnum(type).ToString(); byte[] byteDatas = Encoding.Default.GetBytes(code + ">" + inMsg); SendToClient((Socket)socketHT[playerName], byteDatas); }
/// <summary> /// Método que calcula los tiempos estándar. /// </summary> public void Calcular() { TiempoSetup = DataManager.GetTimeSetup(CentroTrabajo); bool banHurricane = Module.GetValorPropiedadBool("ope_hurricane", PropiedadesRequeridasBool); Propiedad pDiametro = Module.GetPropiedad("D1", PropiedadesRequeridadas); double diametro = Module.ConvertTo("Distance", pDiametro.Unidad, "Inch (in)", pDiametro.Valor); Propiedad pWidth = Module.GetPropiedad("H1", PropiedadesRequeridadas); double width = Module.ConvertTo(EnumEx.GetEnumDescription(DataManager.TipoDato.Distance), pWidth.Unidad, EnumEx.GetEnumDescription(DataManager.UnidadDistance.Inch), pWidth.Valor); int rieles = 0; if (banHurricane) { rieles = GetRielesHurricane(diametro); TiempoMachine = Math.Round(((1440.8321 * width) / (575.964 * rieles)) * 100, 3); } else { rieles = GetRieles(diametro); TiempoMachine = Math.Round((((1266.27 + (rieles * 7.8698)) * width) / ((rieles * 15) * 36)) * 100, 3); } //Obtenermos el valor específico de las propiedades requeridas. TiempoLabor = TiempoMachine * FactorLabor; }
public void SerializeTest() { var validMoveList = from sq in Board.AllSquares() from pc in EnumEx.GetValues <PieceType>() from promoted in new bool[] { false, true } from rm in EnumEx.GetValues <RankMoveType>() from rf in EnumEx.GetValues <RelFileType>() from at in EnumEx.GetValues <ActionType>() from same in new bool[] { false, true } let move = new Move { DstSquare = sq, Piece = new Piece(pc, promoted), RankMoveType = rm, RelFileType = rf, ActionType = at, SameAsOld = same, } where move.Validate() select move; foreach (var move in validMoveList) { var bytes = PbUtil.Serialize(move); Assert.NotNull(bytes); var newMove = PbUtil.Deserialize <Move>(bytes); Assert.NotNull(newMove); Assert.True(newMove.Validate()); Assert.AreEqual(move, newMove); } }
public ObservableCollection <MateriaPrimaAceros> CalcularMateriaPrimaAceroSegmento() { Propiedad a1Max = Module.GetPropiedad("a1", _elAnillo.PerfilID.Propiedades, "Max"); Propiedad a1Min = Module.GetPropiedad("a1", _elAnillo.PerfilID.Propiedades, "Min"); Propiedad h1Max = Module.GetPropiedad("h11", _elAnillo.PerfilLateral.Propiedades, "Max"); Propiedad h1Min = Module.GetPropiedad("h11", _elAnillo.PerfilLateral.Propiedades, "Min"); h1Max.Valor = Module.ConvertTo("Distance", h1Max.Unidad, EnumEx.GetEnumDescription(DataManager.UnidadDistance.Inch), h1Max.Valor); h1Max.Unidad = EnumEx.GetEnumDescription(DataManager.UnidadDistance.Inch); h1Min.Valor = Module.ConvertTo("Distance", h1Min.Unidad, EnumEx.GetEnumDescription(DataManager.UnidadDistance.Inch), h1Min.Valor); h1Min.Unidad = EnumEx.GetEnumDescription(DataManager.UnidadDistance.Inch); double promedioWidth = Math.Round((h1Min.Valor + h1Max.Valor) / 2, 5); a1Max.Valor = Module.ConvertTo("Distance", a1Max.Unidad, EnumEx.GetEnumDescription(DataManager.UnidadDistance.Inch), a1Max.Valor); a1Max.Unidad = EnumEx.GetEnumDescription(DataManager.UnidadDistance.Inch); a1Min.Valor = Module.ConvertTo("Distance", a1Min.Unidad, EnumEx.GetEnumDescription(DataManager.UnidadDistance.Inch), a1Min.Valor); a1Min.Unidad = EnumEx.GetEnumDescription(DataManager.UnidadDistance.Inch); ObservableCollection <MateriaPrimaAceros> oLista = DataManager.GetMateriaPrimaPVD(promedioWidth, a1Min.Valor, a1Max.Valor, 0.005, _elAnillo.MaterialBase.Especificacion); return(oLista); }
public void GetValuesExpectTestArgumentExceptionCheck1() { // ReSharper disable once ReturnValueOfPureMethodIsNotUsed Action test = () => EnumEx.GetValuesExpect(typeof(Int32), 2, 3, 4, 5); Assert.Throws <ArgumentException>(test); }
private void _TBC_OnCallbackQuery(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e) { var chat = e.CallbackQuery?.Message?.Chat; var user = e.CallbackQuery?.From; var data = e.CallbackQuery?.Data; if (chat == null || user == null || user.IsBot != false || data.IsNullOrEmpty()) { return; } var options = EnumEx.ToStringArray <OptionKeys>(); var args = data.Split(" "); if (!options.Any(x => x == args[0])) { return; //no options found } _logger.Log($"[info] => Chat: @{chat.Username ?? "undefined"}:{chat.Id.ToString()} => User: @{user.Username ?? "undefined"}:{user.Id.ToString()} => Callback ({e.CallbackQuery.Id}): '{data}'"); _ssCbqLocker.Lock(() => { _callbacks.Add(e.CallbackQuery); }); }
public void WhenISpecifyAEpsFileType(string fileType) { var filetype = EnumEx.GetValueFromDescription <FileType>(fileType); ScenarioContext.Current.Get <SearchImages>("request") .WithFileType((FileType)Enum.Parse(typeof(FileType), filetype.ToString())); }
/// <summary> /// Returns the enum value from a display name. The enum members requires the <see /// cref="DisplayNameAttribute"/>. If non of the enum values has a matching <see /// cref="DisplayNameAttribute.DisplayName"/>, then it will try to use <see /// cref="Enum.TryParse{TEnum}(string, out TEnum)"/> to retrive a value; otherwise it will /// return the default value. /// <para/> /// Returns the default value of the enum if <paramref name="value"/> is null /// </summary> /// <typeparam name="TEnum">The enum type to parse into</typeparam> /// <param name="value">The value that corresponeds with the enum's <see cref="DisplayNameAttribute.DisplayName"/></param> /// <returns>The associated enum value of <paramref name="value"/></returns> public static TEnum GetValue <TEnum>(this string value) where TEnum : struct, IConvertible { if (value == null) { return(default(TEnum)); } var result = EnumEx.GetDisplayNames <TEnum>().FirstOrDefault(x => x.Value == value); if (string.IsNullOrEmpty(result.Value)) { if (Enum.TryParse(value, out TEnum tEnum)) { return(tEnum); } else { return(default(TEnum)); } } else { return(result.Key); } }
public void WhenISpecifyAAbstractComposition(string composition) { var compositionEnum = EnumEx.GetValueFromDescription <Composition>(composition); ScenarioContext.Current.Get <SearchImages>("request") .WithComposition((Composition)Enum.Parse(typeof(Composition), compositionEnum.ToString())); }
static List <Customer> ParseCustomersData() { string[][] customerDatas = ParseFakeData(@"C:/VBDB/MOCK_DATA.csv"); List <Customer> customers = new List <Customer>(); int id = 10; foreach (string[] customerData in customerDatas) { System.Diagnostics.Debug.Print(customerData.ToString()); Customer customer = new Customer { Id = id++, FirstName = customerData[0], LastName = customerData[1], Email = customerData[2], PhoneNumber = customerData[3], AddressStreet = customerData[4], AddressCity = customerData[5], AddressState = EnumEx.GetValueFromName <State>(customerData[6]), AddressZip = customerData[7] }; customers.Add(customer); } return(customers); }
public void WhenISpecifyIaGraphicalStyle(string style) { var styleEnum = EnumEx.GetValueFromDescription <GraphicalStyles>(style.ToLowerInvariant()); ScenarioContext.Current.Get <SearchImages>("request") .WithGraphicalStyle((GraphicalStyles)Enum.Parse(typeof(GraphicalStyles), styleEnum.ToString())); }
private void CopyValues() { try { //This is were DCSBiosOutput (subset of DCSBIOSControl) get populated from DCSBIOSControl if (string.IsNullOrEmpty(TextBoxTriggerValue.Text)) { throw new Exception("Value cannot be empty"); } if (ComboBoxComparisonCriteria.SelectedValue == null) { throw new Exception("Comparison criteria cannot be empty"); } if (_dcsbiosControl == null) { _dcsbiosControl = DCSBIOSControlLocator.GetControl(TextBoxControlId.Text); } _dcsBiosOutput.Consume(_dcsbiosControl); if (!_showCriteria) { //Value isn't used anyways _dcsBiosOutput.DCSBiosOutputComparison = DCSBiosOutputComparison.Equals; } else { _dcsBiosOutput.DCSBiosOutputComparison = EnumEx.GetValueFromDescription <DCSBiosOutputComparison>(ComboBoxComparisonCriteria.SelectedValue.ToString()); } try { if (_showCriteria) { //Assume only Integer trigger values can be used. That is how it should be!! try { var f = int.Parse(TextBoxTriggerValue.Text); } catch (Exception e) { throw new Exception("Error while checking Trigger value. Only integers are allowed : " + e.Message); } if (_dcsBiosOutput.DCSBiosOutputType == DCSBiosOutputType.INTEGER_TYPE) { _dcsBiosOutput.SpecifiedValueInt = (uint)Convert.ToInt32(TextBoxTriggerValue.Text); } else { throw new Exception("Error, DCSBIOSOutput can only have a Integer type output. This has String : " + _dcsBiosOutput.ControlId); } } } catch (Exception e) { throw new Exception("Error while checking Value format : " + e.Message); } } catch (Exception e) { Common.ShowErrorMessageBox(1030771, e, "Error in CopyValues() : "); } }
/// <summary> /// 指定の座標値に駒台上の駒があればそれを取得します。 /// </summary> private BoardPiece PointToHandPiece(Point pos) { var boxTypeN = PointToPieceBoxType(pos); if (boxTypeN == null) { return(null); } var boxType = boxTypeN.Value; foreach (var pieceType in EnumEx.GetValues <PieceType>()) { var center = HandPieceToPoint(pieceType, boxType); var rect = new RectangleF( (float)(center.X - SquareSize.Width / 2), (float)(center.Y - SquareSize.Height / 2), SquareSize.Width, SquareSize.Height); if (rect.Contains(pos)) { return(new BoardPiece(pieceType, false, boxType)); } } return(null); }
/// <summary> /// オブジェクトの各プロパティが正しく設定されているか調べます。 /// </summary> public bool Validate() { if (!EnumEx.IsDefined(PieceType)) { return(false); } switch (PieceType) { case PieceType.Hisya: case PieceType.Kaku: case PieceType.Gin: case PieceType.Kei: case PieceType.Kyo: case PieceType.Hu: break; case PieceType.Gyoku: case PieceType.Kin: return(!IsPromoted); default: // Noneもここになります。 return(false); } return(true); }