当使用C#编写程序时,is,as以及using是经常用到的关键字。下面将分别介绍它们的使用说明。
is
is关键字用于判断一个对象是否是某个类或其派生类的实例。
示例1:判断一个对象是否是List
List<int> list = new List<int>();
if (list is List<int>)
{
Console.WriteLine("list is an instance of List<int>");
}
else
{
Console.WriteLine("list is not an instance of List<int>");
}
运行结果:
list is an instance of List<int>
示例2:判断一个对象是否是某个基类的实例或其派生类的实例。
class Animal { }
class Dog : Animal { }
Dog dog = new Dog();
if (dog is Animal)
{
Console.WriteLine("dog is an instance of Animal");
}
else
{
Console.WriteLine("dog is not an instance of Animal");
}
运行结果:
dog is an instance of Animal
as
as关键字用于将一个对象转换为另一个类型,如果转换失败则返回null。
示例1:将一个object对象转换为string类型。
object obj = "Hello world";
string str = obj as string;
if (str != null)
{
Console.WriteLine(str);
}
else
{
Console.WriteLine("obj cannot be cast to string");
}
运行结果:
Hello world
示例2:将一个派生类对象转换为基类对象。
class Animal { }
class Dog : Animal { }
Dog dog = new Dog();
Animal animal = dog as Animal;
if (animal != null)
{
Console.WriteLine("dog is converted to Animal");
}
else
{
Console.WriteLine("dog cannot be converted to Animal");
}
运行结果:
dog is converted to Animal
using
using语句用于在使用完某个对象后自动释放资源。它可以用于任何实现了IDisposable接口的对象。
示例1:使用FileStream读取文件。
using (FileStream fs = new FileStream(@"C:\file.txt", FileMode.Open))
{
byte[] buffer = new byte[fs.Length];
fs.Read(buffer, 0, buffer.Length);
string fileContent = Encoding.UTF8.GetString(buffer);
Console.WriteLine(fileContent);
}
示例2:使用SqlConnection连接数据库。
string connectionString = "server=.;database=TestDB;Integrated Security=True";
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
SqlCommand command = new SqlCommand("SELECT COUNT(*) FROM Users", conn);
int count = (int)command.ExecuteScalar();
Console.WriteLine("There are {0} users in the database.", count);
}
注意:using语句只适用于局部变量,而不适用于成员变量。如果需要在类中使用using语句,可以使用IDisposable接口并手动释放资源。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#中is,as,using关键字的使用说明 - Python技术站