From df30e8562e49b45e7a9a3497d368cebd6085be87 Mon Sep 17 00:00:00 2001
From: WJC <wjc@hdlchina.com.cn>
Date: 星期一, 30 十二月 2019 17:33:33 +0800
Subject: [PATCH] 2019-12-30-2
---
ZigbeeApp/GateWay.Ios/Main.cs | 180 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 180 insertions(+), 0 deletions(-)
diff --git a/ZigbeeApp/GateWay.Ios/Main.cs b/ZigbeeApp/GateWay.Ios/Main.cs
new file mode 100755
index 0000000..6f3c497
--- /dev/null
+++ b/ZigbeeApp/GateWay.Ios/Main.cs
@@ -0,0 +1,180 @@
+锘縰sing System;
+using System.Collections.Generic;
+using UIKit;
+
+namespace GateWay.Ios
+{
+ public class Application
+ {
+ // This is the main entry point of the application.
+ static void Main(string[] args)
+ {
+ // if you want to use a different Application Delegate class from "AppDelegate"
+ // you can specify it here.
+ UIApplication.Main(args, null, "AppDelegate");
+
+ //Study P246
+ int x = 40;
+ GetAString firstStringMethod = new GetAString(x.ToString);
+ GetAString firstStringMethod1 = x.ToString;
+
+ var balance = new Currency(34, 50);
+ firstStringMethod1 = balance.ToString;
+ firstStringMethod1 = new GetAString(Currency.GetCurrencyUnit);
+
+ #region 绠�鍗曠殑濮旀墭
+
+
+ DoubleOp[] operations =
+ {
+ MathOperation .MultiplyByTwo ,
+ MathOperation.Square
+ };
+
+ for (int i = 0; i < operations.Length; i++)
+ {
+ // System.Console.WriteLine($ "Using operations[{i}]:);
+ var aa = $"{operations[i]}";
+ ProcessAndDisplayNumber(operations[i], 2.0);
+ ProcessAndDisplayNumber(operations[i], 7.9);
+ ProcessAndDisplayNumber(operations[i], 21.4);
+ }
+
+ #region 鍐掓场鎺掑簭
+ int[] sortArray = { 0, 5, 6, 2, 1 };
+ bool swapped = true;
+ do
+ {
+ swapped = false;
+ for (int i = 0; i < sortArray.Length - 1; i++)
+ {
+ if (sortArray[i] > sortArray[i + 1])
+ {
+ int temp = sortArray[i];
+ sortArray[i] = sortArray[i + 1];
+ sortArray[i - 1] = temp;
+ swapped = true;
+ }
+ }
+ } while (swapped);
+
+
+ //绗簩绉嶆柟娉�
+ Employee[] employees =
+ {
+ new Employee ("A",20000),
+ new Employee ("B",30000),
+ new Employee ("C",40000),
+ };
+
+ BubbleSorter.Sort(employees, Employee.CompareSalary);
+ foreach (var employee in employees )
+ {
+ var aa = employee;
+ }
+ #endregion
+ }
+
+
+
+ static void ProcessAndDisplayNumber1(Func<double, double> action, double value)
+ {
+ double result = action(value);
+ }
+
+ //浣跨敤Fun<in T,out TResult>鏉ヤ唬鏇胯嚜瀹氫箟鐨凞oubleOp锛�
+ // <double, double>[] operations1 =
+ // {
+ // MathOperation.MultiplyByTwo ,
+ // MathOperation.Square
+ //};
+
+ static void ProcessAndDisplayNumber(DoubleOp action, double value)
+ {
+ double result = action(value);
+ }
+
+ class MathOperation
+ {
+ public static double MultiplyByTwo(double value) => value * 2;
+ public static double Square(double value) => value * value;
+ }
+
+ delegate double DoubleOp(double x);
+ #endregion
+
+ private delegate string GetAString();
+
+ struct Currency
+ {
+ public uint Dollers;
+ public ushort Cents;
+
+ public Currency(uint dollers, ushort cents)
+ {
+ this.Dollers = dollers;
+ this.Cents = cents;
+ }
+
+ public override string ToString() => $"${Dollers}.{Cents,2:00}";
+ public static string GetCurrencyUnit() => "Dollers";
+ public static explicit operator Currency(float value)
+ {
+ checked
+ {
+ uint dollers = (uint)value;
+ ushort cents = (ushort)((value - dollers) + 100);
+ return new Currency(dollers, cents);
+ }
+ }
+
+ public static implicit operator float(Currency value) =>
+ value.Dollers + (value.Cents / 100.0f);
+
+ public static implicit operator Currency(uint value) =>
+ new Currency(value, 0);
+
+ public static implicit operator uint(Currency value) =>
+ value.Dollers;
+ }
+
+ class BubbleSorter
+ {
+ static public void Sort<T>(IList<T> sortArray, Func<T, T, bool> comparison)
+ {
+ bool swapped = true;
+ do
+ {
+ swapped = false;
+ for (int i = 0; i < sortArray.Count - 1;i++){
+ if(comparison (sortArray [i+1],sortArray [i]))
+ {
+ T temp = sortArray[i];
+ sortArray[i] = sortArray[i + 1];
+ sortArray[i + 1] = temp;
+ swapped = true;
+ }
+ }
+
+ } while (swapped);
+ }
+ }
+
+ class Employee
+ {
+ public Employee (string name,decimal salary)
+ {
+ Name = name;
+ Salary = Salary;
+ }
+
+ public string Name { get; }
+ public Decimal Salary { get; private set; }
+
+ public override string ToString() => $"{Name},{Salary:C}";
+ public static bool CompareSalary(Employee e1, Employee e2) => e1.Salary < e2.Salary;
+ }
+
+ }
+}
+
--
Gitblit v1.8.0