static void Main(string[] args) { //Game //Kost kubik = new Kost(); //Gamer g1 = new Gamer("Иван"); //Console.WriteLine("Выпало очков {0} для игрока {1}", //g1.SeansGame(kubik), g1.ToString()); //Monet mon = new Monet(); //IGame bmon = new AdapterGame(mon); //Console.WriteLine("Монета показала \"{0}\" для игрока {1}", g1.SeansGame(bmon), //g1.ToString()); // Climate ClimateSystem sys = new ClimateSystem("Control System"); FSensor fSensor = new FSensor(); ISensor sensorAdapter = new AdapterSensor(fSensor); Console.WriteLine("System: {0}. Celsium temperature {1}", sys.Name, sensorAdapter.Determine()); Console.ReadKey(); }
static Offset <FSensor> Serialise(FlatBufferBuilder b, string identifier, ISensor sensor) { var n = b.CreateString(identifier); int observation_offset; FObservation observation_type; switch (sensor) { case IHasString numeral: observation_offset = Serialise(b, numeral).Value; observation_type = FObservation.FString; break; case IHasFloatArray a: observation_offset = Serialise(b, a).Value; observation_type = FObservation.FArray; break; case IHasSingle single: observation_offset = Serialise(b, single).Value; observation_type = FObservation.FSingle; break; case IHasDouble has_double: observation_offset = Serialise(b, has_double).Value; observation_type = FObservation.FDouble; break; case IHasTriple triple: observation_offset = Serialise(b, triple).Value; observation_type = FObservation.FTriple; break; case IHasQuadruple quadruple: observation_offset = Serialise(b, quadruple).Value; observation_type = FObservation.FQuadruple; break; case IHasEulerTransform transform: observation_offset = Serialise(b, transform).Value; observation_type = FObservation.FETObs; break; case IHasQuaternionTransform quaternion_transform: observation_offset = Serialise(b, quaternion_transform).Value; observation_type = FObservation.FQTObs; break; case IHasRigidbody rigidbody: observation_offset = Serialise(b, rigidbody).Value; observation_type = FObservation.FRBObs; break; case IHasByteArray array: observation_offset = Serialise(b, array).Value; observation_type = FObservation.FByteArray; break; default: return(FSensor.CreateFSensor(b, n)); } FSensor.StartFSensor(b); FSensor.AddSensorName(b, n); FSensor.AddSensorValueType(b, observation_type); FSensor.AddSensorValue(b, observation_offset); return(FSensor.EndFSensor(b)); }