包含,C#字符串,枚举,集合,数组以及类,属性的设置
Snip20170719_1.pngC#基本数据类型代码
一:字符串!
using UnityEngine;
using System.Collections;
public class hehe:NewBehaviourScript8{
}
public class person{
public int age{
set{
age = value;
}
get{
return age;
}
}
string name;
public int c;
public int metp;
//这个具体有啥作用还是不知道
public void Swap (ref int a, ref int b ){
metp = 9;
metp = a;
a = b;
b = metp;
}
public void Sum (int i ,int j ,out int sum){
sum = 0;
sum = i + j;
}
public person(){
Debug.Log("初始化方法");
}
}
public class NewBehaviourScript8 : MonoBehaviour {
public string weidu{
set{
weidu = value;
}
get{
return weidu;
}
}
public NewBehaviourScript8(){
}
public string haha;
//这个一开始就会走啊
void Start () {
// name = "hehe";
//如果没有get方法 就打印不出来的
// Debug.Log ("name = " + name);
// stringCreatMacth();
// macthCreat ();
}
//方法的应用
public void macthCreat(){
person p = new person ();
int i = 5;
int j = 12;
p.Swap (ref i,ref j);
Debug.Log (i);
Debug.Log (j);
Debug.Log ("jiegou dengyu " + p.metp);
int r;
p.Sum (5, 13, out r);
//结果是18 ,自动加一个返回值
Debug.Log (r);
}
//字符串增删查改,string 是一个引用类型本质是一个chain类型的数组
public void stringCreatMacth(){
string s1 = "123";
string s2 = "123";
if (s1 == s2) {
Debug.Log ("文本一样");
} else {
Debug.Log ("buyiyang");
}
string name = "lanou";
for(int i = 0;i<name.Length;i++){
Debug.Log (name [i]);
}
//等价上面的那个字符串
char[] n = new char[]{ 'l', 'a', 'n', 'o', 'u' };
string o = "wudiyeshiyizhongjimo";
string wu = "zhong";
if (o.Contains (wu)) {
Debug.Log ("baohan");
} else {
Debug.Log ("bu baohan");
}
//获取下标
int c = wu.IndexOf ("g");
Debug.Log ("xiabiao = "+ c);
wu.Remove (2);
Debug.Log ("shanchu = "+ wu);
//分割子串
char[] en = {'w','u'};
string[] sub = o.Split (en,1);
Debug.Log ("sub = " + sub);
for(int i = 0;i<sub.Length;i++){
Debug.Log ("分割字符 = " + sub[i]);
}
//获取子串,从2 下表开始获取
string io = o.Substring (2);
Debug.Log ("substring = " + io);
}
// Update is called once per frame
void Update () {
}
}
using UnityEngine;
using System.Collections;
public class stringlianxi : MonoBehaviour {
public stringlianxi( int i ,float j, double h){
Debug.Log (i);
}
// Use this for initialization
void Start () {
//Split 第一个参数是分割的标示符,后面是 分段好
string name = "lanOukeji/jinwuxing/qingge/haidian/beijing2016";
string []s = name.Split( new char []{'/'},2);
Debug.Log ("changdu = "+s.Length);
for(int i = 0;i<s.Length;i++){
Debug.Log ("xiabiao =" + s[i]);
}
int c = 2;
float j = 2.3f;
double k = 1.2f;
stringlianxi h = new stringlianxi (c,j,k);
diguo (c);
}
public void diguo( int i ){
if (i < 100) {
i++;
diguo (i);
} else {
return;
}
}
// Update is called once per frame
void Update () {
}
}
二:枚举,集合,数组
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class eunm : MonoBehaviour {
enum week{
monday,
tuseday,
wedneday,
friday,
saturday,
sunday,
}
public class eunm1:eunm{
public string Name;
public int age;
public string sex;
}
struct person{
public string name;
public int age;
}
struct Point2{
public float X;
public float Y;
}
struct hero {
public string name ;
public float Hp;
public float MP;
}
// Use this for initialization
void Start () {
eunm1 e = new eunm1 ();
e.Name = "xiaom";
week w = week.friday;
Debug.Log ((int)w);
person p;
p.name = "asd";
p.age = 2;
Point2 p1;
p1.X = 2.5f;
p1.Y = 1.0f;
hero her;
her.name = "demaxiya";
her.Hp = 1.88f;
her.MP = 2.0f;
}
// Update is called once per frame
void Update () {
}
void CreatArrey(){
// List<string> hehe = new List<string>();
// Dictionary<int ,string> mydictionary = new Dictionary<int , string>();
// mydictionary.Add(0,"0");
//
// bool i = mydictionary.ContainsKey (0);
// int value;
List<string> Mylist = new List<string> ();
//创建一个数组
string[] temArr = { "ha", "heh", "gaga", "asdas" };
//已集合为参数初始化list;
List<string> testlist = new List<string> (temArr);
Mylist.Add ("wudi");
Mylist.AddRange (temArr);
Mylist.Insert (0, "tl");
for(int i= 0 ;i < Mylist.Count;i++ ){
Debug.Log (Mylist [i]);
}
//删除
Mylist.Remove ("hunter");
// Mylist.RemoveAll (0);
//清空
Mylist.Clear();
// Mylist.RemoveAll();
//查找相应的元素
if (Mylist.Contains ("hehe")) {
} else {
}
// 排序
Mylist.Sort ();
}
void dictionarycreat(){
//字典初始化。
Dictionary<string,string> film = new Dictionary<string,string>();
film.Add ("weixiaobao", "lutingji");
film.Add ("zhangxueji", "qitiandulongji");
film.Add ("yangguo", "shendiaoxialv");
film.Add ("linghuchong", "xiaoaojianghu");
Debug.Log ("xianzaijihezhongyoujige" + film.Count);
//通过KEYVALUEPAIR遍历字典;
foreach(KeyValuePair<string,string>kvp in film){
Debug.Log ("dictionary ="+ kvp);
}
// 通过内容KEY 来获取对应的Key
if(!film.ContainsKey("tl")){
film.Add ("tl", "wudi");
}
// 取Key值
Dictionary<string,string>.KeyCollection keys = film.Keys;
foreach(string s in keys){
Debug.Log (s);
if( s =="tl"){
Debug.Log ("tlzuishai");
}
}
//取Value值
Dictionary<string,string>.ValueCollection values = film.Values;
foreach(string v in values){
Debug.Log ("painliValuse");
}
//直接找values
foreach(string strname in film.Values){
Debug.Log (strname);
}
string myfilm = film ["tl"];
string objfilm = string.Empty;
//获取键对应值的TryGetValue方法
if (film.TryGetValue ("tl", out objfilm)) {
Debug.Log("主角为段誉的电影是{0}"+ objfilm);
} else {
Debug.Log ("没有这个名字");
}
}
}
三:抽象类虚方法
using UnityEngine;
using System.Collections;
public class NewBehaviourScript : MonoBehaviour {
//抽象类 abstract,关键字。。
public abstract class bloo {
public abstract void Play ();
public void run(){
Debug.Log ("球开始跑了");
}
}
public class basketball : bloo{
public override void Play ()
{
Debug.Log ("打篮球");
}
}
public class foolball:bloo{
public override void Play ()
{
Debug.Log ("踢足球");
}
}
public class volleyball :bloo{
public override void Play ()
{
Debug.Log ("打排球");
}
}
// Use this for initialization
void Start () {
//
bloo b1 = new basketball ();
bloo b2 = new foolball ();
bloo b3 = new volleyball ();
b1.Play ();
b2.Play ();
b3.Play ();
b1.run ();
//直接使用类名 调用,static.
A.i = 10;
}
public class A{
public static int i;
//静态区,程序运行过程中,是一直存在的
//在静态类中,只能保护静态的成员,字段,属性,方法 都要是静态的,
//静态构造方法 前是不允许加修饰符的。静态构造方法可以存在于静态类中,也可以在普通类中
public static int c ;
//构造方法
static A(){
}
public static void hehe (){
}
}
public class b{
//可以存在普通的类中,静态构造方法,会在访问A的静态
static b(){
}
}
//单利类,保证在程序运行期间,一个了类存在一个对象。。
public class player{
//单利三步1,构造私有化方法,不让对象随意的创造对象。
private player () {
}
//2,我们需要在类的内部提供一个静态实例。
private static player _instance;
//3.提供获取实例的接口
public static player GetInstance(){
if(_instance == null){
_instance = new player ();
}
return _instance;
}
// 成员变量
public string name;
public int level;
public int hp;
public int maxHp;
}
public class Bag{
public void UseHp( ){
player p = player.GetInstance ();
p.hp += 10;
p.hp = p.hp > p.maxHp ? p.maxHp : p.hp;
}
}
// Update is called once per frame
void Update () {
// player p = new player ();
// p.name = "老王";
// p.level = 1;
// p.hp = 2;
// p.maxHp = 100;
//
// Bag b = new Bag ();
// b.UseHp (p);
//单利
player p = player.GetInstance();
p.name = "laowang";
//使用父类调用父类对象
//使用父类调用父类对象
Super super = new Super ();
super.A ();
super.B ();
//使用子类类型调用子类对象
//使用子类类型调用子类对象
Sub sub = new Sub ();
sub.A ();
sub.B ();
//使用父类类型 引用子类对象
Super c = new Sub();
c.A ();//调用父类中定义的方法
c.B();//调用了子类的方法
//多态 - 使用父类类型,调用子类中实现的方法;
Apple a = new Apple();
a.Eat ();
Orangr o = new Orangr ();
o.Eat ();
}
//虚方法,在子类中重新实现父类的方法。。
//抽闲方法和虚方法,1,抽象方法必须在抽闲类中,2,抽象方法不能再父类中现实。3.抽象方法在非抽象子类中必须实现。
public class Super{
//virtual 使用虚方法 关键字
public virtual string Name{
get{
return "laowang";
}
}
public void A(){
Debug.Log ("super");
}
public virtual void B (){
Debug.Log ("super vitrual");
}
}
public class Sub:Super{
public new void A (){
Debug.Log ("sub");
}
//重写父类方法,override 要使用多态的话 必须使用override 这个关键字
public override void B (){
Debug.Log ("sub override");
}
}
//抽象方法只能出现在抽象类中
public abstract class Food{
//方法不能够实现。。
public abstract void Eat ();
}
public class Apple:Food{
public override void Eat(){
Debug.Log ("hp+10");
}
}
public class Orangr :Food {
public override void Eat(){
Debug.Log ("HH+10");
}
}
}
四:接口 堆栈
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class mode : MonoBehaviour {
public interface Area {
void Eat ();
}
public interface IVolume {
void Run ();
}
public class Ball : Area,IVolume {
//一旦某个类实现了接口,就必须实现接口的定义的全部方法。
public void Eat(){
}
public void Run(){
}
}
// Use this for initialization
void Start () {
//接口
Area a = new Ball ();
IVolume i = new Ball ();
a.Eat ();
i.Run ();
//栈 先进先出
Stack <string> s = new Stack <string> ();
int count = s.Count;
s.Clear ();
bool b = s.Contains ("老王");
s.Push ("老王");
s.Push ("老张");
s.Push ("小明");
string s1 = s.Pop ();
string s2 = s.Pop ();
string s3 = s.Pop ();
//后进先出的原则
Queue <string> q = new Queue<string> ();
q.Clear ();
int coun = q.Count;
bool p = q.Contains("老王");
q.Enqueue ("老王");
string s4 = q.Dequeue();
}
// Update is called once per frame
void Update () {
Array a = new Array ();
int c;
a.Log ();
}
//封装数组
public class Array{
//索引
public int this [int index] {
set {
_arr [index] = value;
}
}
public int Count{
get{
return _count;
}
}
//添加元素,
public void Add(int value){
//赋值_arr;
_arr [_count] = value;
_count++;
}
//初始化数组
public Array(){
_arr = new int[100];
}
//打印方法
public void Log(){
string str = "当前数组中包含" + Count + "个元素 (";
for (int i = 0; i < Count; i++) {
str += _arr [i];
if(i<Count-1){
str += ", ";
}
}
str += ")";
Debug.Log (str);
}
//数组私有化
private int[] _arr;
//temp 数组的个数
private int _count = 0;
}
public static void Log( ArrayList arr){
// string str = "当前数组中有" + arr.
}
}
using UnityEngine;
using System.Collections;
public class person{
string _name;
public string name
{
get;
set;
}
// public string UserName { set; get; }
public void eat(){
Debug.Log ("ear fool");
}
public void eat(int i){
Debug.Log ("吃了" + i);
}
public void eat (float f){
Debug.Log("chil "+ f);
}
}
public class reftest : MonoBehaviour {
// Use this for initialization
void Start () {
person p = new person ();
p.eat (1);
p.eat ();
p.eat (10f);
p.name = "ahha";
}
public void chongzai(){
print ("chongzai");
}
private void chongzai(int i){
Debug.Log ("int = "+ i);
}
private void mathC(){
int i = 5;
int j = 13;
Swap (ref i,ref j);
// Debug.Log ("i = "+ i);
// Debug.Log ("i = "+ j);
int r;
Sum (i,j, out r);
Debug.Log (r);
}
//ref 值类型 ,引用类型 ,然并卵
public void Swap (ref int a,ref int b ){
int temp = a;
a = b;
b = temp;
}
//让一个方法返回多个值,可以用来输出参数来出来,在前面在Out
//官方定义! 自己觉得就是 多了一个参数可以不用写方法返回值。
public void Sum(int i ,int j ,out int sum){
sum = 0;
sum = i + j;
}
public void ArrayListsample(){
ArrayList arrsample = new ArrayList();
arrsample.Add (100);
arrsample.Add (200);
arrsample.Add (300);
//获取下标!
int a = arrsample.IndexOf (200);
// arrsample.InsertRange(1)
//从1 开始找
a = arrsample.IndexOf(200,1);
//排序
a = arrsample.BinarySearch(200);
arrsample.Sort();// 排序
a = arrsample.BinarySearch (200);
arrsample.Reverse ();//进行翻转!排序
//循环
foreach(int val in arrsample){
Debug.Log ("数组函数 " + val);
}
}
public void hashtablesmaple(){
print("****Queue : 先进先出 ");
Queue queue = new Queue();
queue.Enqueue (200);
queue.Enqueue (100);
queue.Enqueue (100);
//偷看
Debug.Log ("peek = "+ queue.Peek ());
foreach(int Val in queue){
Debug.Log ("val = "+ Val);
}
while (queue.Count > 0) {
Debug.Log ("queue = "+queue.Dequeue());
}
}
//字典
public void SortedListsmaole(){
SortedList sortedList = new SortedList ();
sortedList.Add ("one", 100);
sortedList.Add ("tow",200);
sortedList.Add ("therr",300);
sortedList.Add ("fore",400);
//他 有一个结构体是来读取的
foreach(DictionaryEntry key in sortedList){
// Debug.Log ("zidian"+key.Key,key.Value);
}
//获取全部的keys
ICollection keys = sortedList.Keys;
// ICollection key = sortedList.Keys;
foreach( string key in keys){
Debug.Log(keys);
}
}
//堆栈
public void Stacksmaole(){
Stack stack = new Stack ();
stack.Push (100);
stack.Push (200);
stack.Push (300);
Debug.Log ("***数据个数="+stack.Count);
foreach(int key in stack){
Debug.Log ("获取里面的东西"+ key);
}
//弹出!
while(stack.Count>0){
// Debug.Log (stack.Pop);
}
}
// Update is called once per frame
void Update () {
}
}
网友评论