310 lines
9.5 KiB
C#
310 lines
9.5 KiB
C#
|
|
|
|||
|
|
|
|||
|
|
using NUnit.Framework;
|
|||
|
|
using System;
|
|||
|
|
using System.Collections;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
using System.Runtime.InteropServices;
|
|||
|
|
using System.Text;
|
|||
|
|
using UnityEngine;
|
|||
|
|
|
|||
|
|
public class Chapter2 : MonoBehaviour
|
|||
|
|
{
|
|||
|
|
// const<73><74> readonly <20><> <20><><EFBFBD><EFBFBD>
|
|||
|
|
// const<73><74> <20>⺻<EFBFBD><E2BABB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> static <20><><EFBFBD><EFBFBD> <20><EFBFBD><D7B8><EFBFBD> <20>⺻<EFBFBD><E2BABB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>밡<EFBFBD><EBB0A1>
|
|||
|
|
const int MyConstInt = 1000;
|
|||
|
|
readonly List<int> ints = null;
|
|||
|
|
|
|||
|
|
private decimal myDecimal1, myDecimal2;
|
|||
|
|
// get <20><><EFBFBD><EFBFBD>ȭ
|
|||
|
|
public decimal MyDecimal => myDecimal1 * myDecimal2;
|
|||
|
|
// get,set <20><><EFBFBD><EFBFBD>ȭ
|
|||
|
|
public int MyProperty { get; set; } = 2025;
|
|||
|
|
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
public decimal MyDecimal2
|
|||
|
|
{
|
|||
|
|
get => myDecimal1;
|
|||
|
|
private set => myDecimal1 += value;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void Start()
|
|||
|
|
{
|
|||
|
|
Panda panda1 = new Panda("Bao Bao");
|
|||
|
|
Panda panda2 = new Panda("Mei Xiang");
|
|||
|
|
Panda panda3 = new Panda("Tian Tian");
|
|||
|
|
Debug.Log("Panda Population: " + Panda.Population);
|
|||
|
|
|
|||
|
|
int a = int.MaxValue;
|
|||
|
|
Debug.Log("Max Int: " + a);
|
|||
|
|
//int b= checked(a + 1); // <20><><EFBFBD><EFBFBD><EFBFBD>÷ο<C3B7> <20><EFBFBD><DFBB><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD>
|
|||
|
|
//int b = unchecked(a + 1); // <20><><EFBFBD><EFBFBD><EFBFBD>÷ο<C3B7> <20><EFBFBD><DFBB><EFBFBD> <20><><EFBFBD><EFBFBD> <20><EFBFBD><DFBB><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
int b = a + 1; // <20>⺻<EFBFBD><E2BABB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> unchecked <20><><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
Debug.Log("Overflowed Int: " + b);
|
|||
|
|
|
|||
|
|
decimal c = decimal.MaxValue;// 10^28 -1 //<2F><>Ȯ<EFBFBD><C8AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> double<6C><65><EFBFBD><EFBFBD> 10<31><30> <20><><EFBFBD><EFBFBD>
|
|||
|
|
double e = double.MaxValue;// 10^308 -1 // <20>ε<EFBFBD><CEB5>Ҽ<EFBFBD><D2BC><EFBFBD> <20><><EFBFBD>꿡 <20><><EFBFBD><EFBFBD>
|
|||
|
|
float d = float.PositiveInfinity;// <20><><EFBFBD><EFBFBD> <20><><EFBFBD>Ѵ<EFBFBD>
|
|||
|
|
Debug.Log("Max Decimal: " + c);
|
|||
|
|
Debug.Log("Max Double: " + e);
|
|||
|
|
Debug.Log("Positive Infinity Float: " + d);// Infinity
|
|||
|
|
|
|||
|
|
|
|||
|
|
bool isRaining = false; // 1<><31><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>
|
|||
|
|
BitArray bits = new BitArray(1);// 1<><31>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD>
|
|||
|
|
bits[0] = true;// <20>⺻<EFBFBD><E2BABB><EFBFBD><EFBFBD> false
|
|||
|
|
Debug.Log("Is it raining? " + bits[0]);
|
|||
|
|
|
|||
|
|
StartCoroutine(WaitAndPrint());
|
|||
|
|
|
|||
|
|
Debug.Log("Here's a tab:\t <20><>");
|
|||
|
|
string filePath = @"C:\Users\Username\Documents\UnityProjects";// <20>̽<EFBFBD><CCBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> @<40>ȿ<EFBFBD><C8BF><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ڰ<EFBFBD> <20>Ϲ<EFBFBD> <20><><EFBFBD>ڷ<EFBFBD> ó<><C3B3><EFBFBD><EFBFBD>
|
|||
|
|
Debug.Log("File Path: " + filePath);
|
|||
|
|
string multiLine = @"This is a
|
|||
|
|
multi-line string.
|
|||
|
|
It preserves line breaks and ""spaces"".";
|
|||
|
|
Debug.Log("Multi-line String: " + multiLine);// <20><><EFBFBD>̽<EFBFBD><CCBD><EFBFBD> ''' '''<27><> <20><><EFBFBD><EFBFBD> <20>ٵ<EFBFBD> "<22><> <20>ι<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
// $<24><> <20><><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD>
|
|||
|
|
string testTxt = $@"This is a test file path:
|
|||
|
|
{filePath}
|
|||
|
|
And here's a tab character:\tEnd of tab.";
|
|||
|
|
Debug.Log("Test Text: " + testTxt);
|
|||
|
|
|
|||
|
|
// [,]<5D><> [][]<5D><> <20><><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>迭 (<28><><EFBFBD><EFBFBD> ũ<><C5A9> <20><><EFBFBD>簢<EFBFBD><E7B0A2>)
|
|||
|
|
int[,] rect = new int[2, 3];
|
|||
|
|
rect[0, 0] = 1;
|
|||
|
|
rect[1, 2] = 9;
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD> <20>迭 (<28>ึ<EFBFBD><E0B8B6> <20><><EFBFBD>̰<EFBFBD> <20>ٸ<EFBFBD> <20><> <20><><EFBFBD><EFBFBD>)
|
|||
|
|
int[][] jagged = new int[2][];
|
|||
|
|
jagged[0] = new int[3]; // <20><><EFBFBD><EFBFBD> 3
|
|||
|
|
jagged[1] = new int[1]; // <20><><EFBFBD><EFBFBD> 1
|
|||
|
|
jagged[0][0] = 1;
|
|||
|
|
jagged[1][0] = 9;
|
|||
|
|
|
|||
|
|
// static <20>ʵ<EFBFBD><CAB5><EFBFBD> <20>迭<EFBFBD><E8BFAD> <20>⺻<EFBFBD><E2BABB><EFBFBD><EFBFBD> 0<><30><EFBFBD><EFBFBD> <20>ʱ<EFBFBD>ȭ<EFBFBD><C8AD>
|
|||
|
|
Debug.Log("Static Int: " + staticInt);
|
|||
|
|
Debug.Log("myArrar 5: " + myArray[4]);
|
|||
|
|
// string<6E><67> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> null<6C><6C> <20>ʱ<EFBFBD>ȭ<EFBFBD><C8AD>
|
|||
|
|
|
|||
|
|
decimal myD = default(decimal); // 0 //default<6C><74> <20><><EFBFBD><EFBFBD>
|
|||
|
|
decimal myD2;
|
|||
|
|
Debug.Log("Default Decimal: " + myD);
|
|||
|
|
//Debug.Log("Default Decimal 2: " + myD2);// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ݵ<EFBFBD><DDB5><EFBFBD> <20>ʱ<EFBFBD>ȭ <20>ؾ<EFBFBD><D8BE><EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F>Ű躯<C5B0><E8BAAF><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ϴ°<CFB4> <20>ƴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ϴ°<CFB4> <20>ִµ<D6B4> <20>Է<EFBFBD><D4B7><EFBFBD> ref, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> out
|
|||
|
|
// out<75><74> <20><><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȯ<EFBFBD><C8AF><EFBFBD><EFBFBD> <20>䳻<EFBFBD><E4B3BB> <20><> <20><><EFBFBD><EFBFBD>
|
|||
|
|
int refValue = 10;// ref<65><66> <20>ݵ<EFBFBD><DDB5><EFBFBD> <20>ʱ<EFBFBD>ȭ <20>ؾ<EFBFBD><D8BE><EFBFBD>
|
|||
|
|
TestRef(ref refValue);
|
|||
|
|
Debug.Log("Ref Value after TestRef: " + refValue);
|
|||
|
|
|
|||
|
|
int outValue1 = 20;// out<75><74> <20>ʱ<EFBFBD>ȭ <20><><EFBFBD><EFBFBD> <20>ʾƵ<CABE> <20><>
|
|||
|
|
TestOut(out outValue1, out refValue);
|
|||
|
|
Debug.Log("Out Value1 after TestOut: " + outValue1);
|
|||
|
|
Debug.Log("Out Value2 after TestOut: " + refValue);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD> <20>Ű<EFBFBD><C5B0><EFBFBD><EFBFBD><EFBFBD> params
|
|||
|
|
int sum1 = MySum(1, 2, 3);
|
|||
|
|
Debug.Log("Sum1: " + sum1);
|
|||
|
|
|
|||
|
|
// <20>⺻<EFBFBD><E2BABB> <20>ʵ<EFBFBD>
|
|||
|
|
MyTestBasicNumber();
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>μ<EFBFBD>
|
|||
|
|
MyTestBasicNumber(20, y: 20.5f, z: "<22>ȳ<EFBFBD><C8B3>ϼ<EFBFBD><CFBC><EFBFBD>");
|
|||
|
|
MyTestBasicNumber(y: 15.5f, x: 20, z: "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|||
|
|
// <20>Ű<EFBFBD><C5B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><DEB6><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>μ<EFBFBD><CEBC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
// <20>Ű<EFBFBD><C5B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
string testNullValue = null;
|
|||
|
|
string testNonNullValue = testNullValue ?? "null <20><><EFBFBD>Դϴ<D4B4>.";// null <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
Debug.Log("Test Null Value: " + testNonNullValue);
|
|||
|
|
Debug.Log("Test null value: " + testNullValue?.ToString()); //null <20><><EFBFBD>Ǻ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
//Debug.Log("Test null value: " + testNullValue.ToString()); // null <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> <20><EFBFBD>
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>
|
|||
|
|
Debug.Log("Test null value: " + (testNullValue?.ToString() ?? "null <20>̿<EFBFBD><CCBF><EFBFBD>")); // () <20>ʼ<EFBFBD>
|
|||
|
|
|
|||
|
|
// foreach string<6E><67> <20>뿭<EFBFBD><EBBFAD> <20><><EFBFBD><EFBFBD> <20>־<EFBFBD> <20>̷<EFBFBD><CCB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>
|
|||
|
|
foreach (char ch in "<22>ȳ<EFBFBD><C8B3>ϼ<EFBFBD><CFBC><EFBFBD>")
|
|||
|
|
{
|
|||
|
|
Debug.Log(ch);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// nameof <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20≯<EFBFBD><CCB8><EFBFBD> Ȯ<><C8AE>
|
|||
|
|
Debug.Log("myDecimal1 name : " + nameof(myDecimal1));
|
|||
|
|
|
|||
|
|
object obj = new Panda("Bao Bao");
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD> 1: is <20><><EFBFBD><EFBFBD>
|
|||
|
|
if (obj is Panda panda)
|
|||
|
|
{
|
|||
|
|
Debug.Log($"<22>ٿ<EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>: {panda.Name}");
|
|||
|
|
}
|
|||
|
|
//<2F><><EFBFBD><EFBFBD> <20>Լ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>
|
|||
|
|
MyAsset myAsset = new MyAsset();
|
|||
|
|
Debug.Log(myAsset.ClassName);
|
|||
|
|
Debug.Log(myAsset.Liability);
|
|||
|
|
// base test <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Ȯ<><C8AE>
|
|||
|
|
MyAsset myasset = new MyAsset(1);
|
|||
|
|
|
|||
|
|
MyAsset2 myAsset2 = new MyAsset2();
|
|||
|
|
Debug.Log(myAsset2.NetValue);
|
|||
|
|
|
|||
|
|
Asset2 asset2 = myAsset2;// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
|||
|
|
// overrider<65><72> new <20><><EFBFBD><EFBFBD>
|
|||
|
|
asset2.MyOverrider();// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>۽<EFBFBD> <20><>ü<EFBFBD><C3BC> <20><><EFBFBD><EFBFBD>
|
|||
|
|
asset2.MyNew();// <20>θ<EFBFBD><CEB8><EFBFBD>ü<EFBFBD><C3BC> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>
|
|||
|
|
|
|||
|
|
// sealed <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (<28>żҵ<C5BC> <20><> Ŭ<><C5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>밡<EFBFBD><EBB0A1>)
|
|||
|
|
asset2.MySealed();//<2F>ڽ<EFBFBD> <20><>ü<EFBFBD><C3BC> <20><><EFBFBD><EFBFBD>
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ұ<EFBFBD> <20>żҵ<C5BC> <20><><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
|
|||
|
|
MyWindowApi();// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> API ȣ<><C8A3>
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// extern Ű<><C5B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DllImport <20><>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD>
|
|||
|
|
// C#<23><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ƽ<EFBFBD><C6BC> <20>ڵ带 ȣ<><C8A3><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
|||
|
|
// Windows API<50><49> MessageBox <20>Լ<EFBFBD> ȣ<><C8A3>
|
|||
|
|
[DllImport("user32.dll", CharSet = CharSet.Unicode)]
|
|||
|
|
public static extern int MessageBox(IntPtr hWnd, string text, string caption, uint type);
|
|||
|
|
|
|||
|
|
[ContextMenu("MY Window Open")]
|
|||
|
|
//[ContextMenu("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> api<70><69> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> â <20><><EFBFBD><EFBFBD>")]
|
|||
|
|
public static void MyWindowApi()
|
|||
|
|
{
|
|||
|
|
global::System.IntPtr owner = IntPtr.Zero; // :: <20><> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ش<EFBFBD> System <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
MessageBox(owner, "<22>ȳ<EFBFBD><C8B3>ϼ<EFBFBD><CFBC><EFBFBD>", "<22><EFBFBD>Ʈ", 0);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void TestRef(ref int value)
|
|||
|
|
{
|
|||
|
|
value += 5;
|
|||
|
|
}
|
|||
|
|
void TestOut(out int value1,out int value2)
|
|||
|
|
{
|
|||
|
|
value1 = 100;
|
|||
|
|
value2 = 200;
|
|||
|
|
}
|
|||
|
|
int MySum(params int[] numbers)// <20>迭 <20><><EFBFBD>·θ<C2B7> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
{
|
|||
|
|
int sum = 0;
|
|||
|
|
foreach (int num in numbers)
|
|||
|
|
{
|
|||
|
|
sum += num;
|
|||
|
|
}
|
|||
|
|
return sum;
|
|||
|
|
}
|
|||
|
|
//int MySum2(params List<int> numbers)// List <20><><EFBFBD>·<EFBFBD> <20>Ұ<EFBFBD>
|
|||
|
|
//{// C#9<><39><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>Ұ<EFBFBD> C# 13<31><33><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
// int sum = 0;
|
|||
|
|
// foreach (int num in numbers)
|
|||
|
|
// {
|
|||
|
|
// sum += num;
|
|||
|
|
// }
|
|||
|
|
// return sum;
|
|||
|
|
//}
|
|||
|
|
|
|||
|
|
// <20>⺻<EFBFBD><E2BABB> <20>ʵ<EFBFBD>
|
|||
|
|
void MyTestBasicNumber(int x= 10, float y = 5.5f, string z = "Hello")
|
|||
|
|
{
|
|||
|
|
Debug.Log($"x: {x}, y: {y}, z: {z}");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
// static <20>ʵ<EFBFBD><CAB5><EFBFBD> <20>迭<EFBFBD><E8BFAD> <20>⺻<EFBFBD><E2BABB><EFBFBD><EFBFBD> 0<><30><EFBFBD><EFBFBD> <20>ʱ<EFBFBD>ȭ<EFBFBD><C8AD>
|
|||
|
|
static int staticInt;
|
|||
|
|
int[] myArray = new int[5];
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 1<><31> <20>ڿ<EFBFBD> ȣ<><C8A3><EFBFBD>Ǵ<EFBFBD> <20>ڷ<EFBFBD>ƾ <20><EFBFBD><DEBC><EFBFBD>
|
|||
|
|
/// </summary>
|
|||
|
|
///
|
|||
|
|
public System.Collections.IEnumerator WaitAndPrint()
|
|||
|
|
{
|
|||
|
|
yield return new WaitForSeconds(1f);
|
|||
|
|
Console.Write('\a'); // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ƽ <20>ֿܼ<DCBC><D6BF><EFBFBD> <20>Ҹ<EFBFBD><D2B8><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
|
Debug.Log("1 second has passed.");
|
|||
|
|
}
|
|||
|
|
// Update is called once per frame
|
|||
|
|
void Update()
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
class Panda
|
|||
|
|
{
|
|||
|
|
public string Name;
|
|||
|
|
public static int Population = 0;
|
|||
|
|
/// <summary>
|
|||
|
|
/// Ŭ<><C5AC><EFBFBD><EFBFBD> ȣ<><C8A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="name">
|
|||
|
|
/// <20≯<EFBFBD>
|
|||
|
|
/// </param>
|
|||
|
|
public Panda(string name)
|
|||
|
|
{
|
|||
|
|
Name = name;
|
|||
|
|
Population = checked(Population++);// checked Ű<><C5B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>÷ο<C3B7> <20><EFBFBD><DFBB><EFBFBD> <20><><EFBFBD>ܸ<EFBFBD> <20><EFBFBD><DFBB><EFBFBD>Ŵ
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
class Asset
|
|||
|
|
{
|
|||
|
|
public string name;
|
|||
|
|
/// <summary>
|
|||
|
|
/// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>Լ<EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̽<EFBFBD> ó<><C3B3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ƴϴ<C6B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ص<EFBFBD> <20><>)
|
|||
|
|
/// </summary>
|
|||
|
|
public virtual decimal Liability => 0;
|
|||
|
|
/// <summary>
|
|||
|
|
/// <20>Ϲ<EFBFBD> <20>Լ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ұ<EFBFBD>
|
|||
|
|
/// </summary>
|
|||
|
|
public decimal Libility2 => 0;
|
|||
|
|
|
|||
|
|
int x = 1;
|
|||
|
|
public Asset(int x) => Debug.Log("this.x + x : " + (this.x+x));
|
|||
|
|
// <20>⺻ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
public Asset() => Debug.Log("Asset <20>⺻ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|||
|
|
}
|
|||
|
|
/// <summary>
|
|||
|
|
/// <20><EFBFBD> Ŭ<><C5AC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʼ<EFBFBD>
|
|||
|
|
/// </summary>
|
|||
|
|
abstract class Asset2
|
|||
|
|
{
|
|||
|
|
public abstract decimal NetValue { get; }
|
|||
|
|
|
|||
|
|
// overrider, new test
|
|||
|
|
public virtual void MyOverrider() => Debug.Log("Asset2 Overrider");
|
|||
|
|
public virtual void MyNew() => Debug.Log("Asset2 New");
|
|||
|
|
|
|||
|
|
// sealed test <20>Լ<EFBFBD>
|
|||
|
|
public virtual void MySealed() => Debug.Log("Asset2 sealed");
|
|||
|
|
}
|
|||
|
|
class MyAsset : Asset
|
|||
|
|
{
|
|||
|
|
public override decimal Liability => base.Liability;
|
|||
|
|
public string ClassName { get; set; } = nameof(MyAsset);
|
|||
|
|
//public override decimal Liability2 =>base.Libility2; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
public MyAsset(int x) : base(x) => Debug.Log("MyAsset <20><><EFBFBD><EFBFBD> base <20><><EFBFBD><EFBFBD>");
|
|||
|
|
// base(x)<29><> <20>θ<EFBFBD><CEB8><EFBFBD>ü<EFBFBD><C3BC> <20><><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD> <20><><EFBFBD>߿<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD>
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ڸ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20>⺻ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʼ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
public MyAsset() => Debug.Log("MyAsset <20>⺻ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|||
|
|
}
|
|||
|
|
class MyAsset2 : Asset2
|
|||
|
|
{
|
|||
|
|
public override decimal NetValue => 2025;
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
public override void MyOverrider() => Debug.Log("MyAsset2 Overrider");
|
|||
|
|
public new void MyNew() => Debug.Log("MyAsset2 New");
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
public sealed override void MySealed() => Debug.Log("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ұ<EFBFBD> <20>żҵ<C5BC>");
|
|||
|
|
}
|