C# using 关键字介绍

目录

 

Using 关键字介绍

Using 关键字使用介绍

第一个用途使用介绍

第二个用途使用介绍

第三个用途使用介绍

第四个用途使用介绍


Using 关键字介绍

看了很多的参考文档都把 using 关键字列为 3 个用途,但我看下来准备列为 4个用途

  1. 允许在命名空间中使用类型,这样无需在该命名空间中限定某个类型的使用
  2. 允许访问类型的静态成员和嵌套类型,而无需限定使用类型名称进行访问
  3. 为命名空间或类型创建别名,称为 using 别名指令
  4. using 关键字还用于创建 using 语句,此类语句的类需要继承 IDisposable 

Using 关键字使用介绍

第一个用途使用介绍

using 来声明你用到的系统类,类似于java 中的 import。如下using UnityEngine.UI 加入到类中,Unity 开发中就可以使用 UI 控件了,比如Image,Button,Text,Toggle等一些UI控件,这些都写在类的最前面。

using System.Collections;
using System.Collections.Generic;
using DG.Tweening;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;

public class LoginScripts : MonoBehaviour
{
      //代码体省略
}

第二个用途使用介绍

允许访问类型的静态成员和嵌套类型,而无需限定使用类型名称进行访问,如下代码中第二个类中 using static System.Math的静态l类引入,用户在使用时就比较便捷,直接使用成员变量或者方法就可以了

using System;

public class Circle
{
   public Circle(double radius)
   {
      Radius = radius;
   }

   public double Radius { get; set; }

   public double Diameter
   {
      get { return 2 * Radius; }
   }

   public double Circumference
   {
      get { return 2 * Radius * Math.PI; }
   }

   public double Area
   {
      get { return Math.PI * Math.Pow(Radius, 2); }
   }
}
using System;
using static System.Math;

public class Circle
{
   public Circle(double radius)
   {
      Radius = radius;
   }

   public double Radius { get; set; }

   public double Diameter
   {
      get { return 2 * Radius; }
   }

   public double Circumference
   {
      get { return 2 * Radius * PI; }
   }

   public double Area
   {
      get { return PI * Pow(Radius, 2); }
   }
}

第三个用途使用介绍

为命名空间或类型创建别名,如下截图是是为命名空间创建别名:

第四个用途使用介绍

这里通过Unity和Android之间交互来介绍这个用途,一般 Unity 中用AndroidJavaClass 来直接调用Android的接口。

因为使用AndroidJavaClass和AndroidJavaObject是最为方便的方式。具体可以看如下代码:

using UnityEngine;

public class AndroidDialogTest : MonoBehaviour
{
    private AndroidJavaClass jc;//调用的是Android中的静态方法
    private AndroidJavaObject jo;//调用的是Android中的非静态方法
    // Start is called before the first frame update
    void Start()
    {
        //这是Unity的固定写法
        using (jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
        {
            jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
        }
           
    }

    //二级dialog
    public void DialogTestMethod()
    {
        //调用 Android 中的 UnityDialog 方法
        jo.Call("UnityDialog", "My Unity", "欢迎来到 Erica 的Unity");
    }

    //退出dialog
    public void DialogQuitAppTestMethod()
    {
        //调用 Android 中的 UnityQuitMainActivity 方法
        jo.Call("UnityQuitMainActivity", "退出", "是否退出应用?");
    }

}

上述代码中可以用 using 创建对象语句主要是AndroidJavaObject是继承了IDisposable ,而 AndroidJavaClass  继承了AndroidJavaObject,具体看如下源码截图:

更多Unity 知识请关注本公众号:

猜你喜欢

转载自blog.csdn.net/Ericafyl/article/details/106251625