- 1、本文档共38页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c基础常见面试题
C#基础概念二十五问
答:
静态变量使用 static 修饰符进行声明,在类被实例化时创建,通过类进行访问
不带有 static 修饰符声明的变量称做非静态变量,在对象被实例化时创建,通过对象进行访问
一个类的所有实例的同一静态变量都是同一个值,同一个类的不同实例的同一非静态变量可以是不同的值
静态函数的实现里不能使用非静态成员,如非静态变量、非静态函数等
示例:
using System;
using System.Collections.Generic;
using System.Text;
namespace Example01
{
class Program
{
class Class1
{
public static String staticStr = Class;
public String notstaticStr = Obj;
}
static void Main(string[] args)
{
//静态变量通过类进行访问,该类所有实例的同一静态变量都是同一个值
Console.WriteLine(Class1s staticStr: {0}, Class1.staticStr);
Class1 tmpObj1 = new Class1();
tmpObj1.notstaticStr = tmpObj1;
Class1 tmpObj2 = new Class1();
tmpObj2.notstaticStr = tmpObj2;
//非静态变量通过对象进行访问,不同对象的同一非静态变量可以有不同的值
Console.WriteLine(tmpObj1s notstaticStr: {0}, tmpObj1.notstaticStr);
Console.WriteLine(tmpObj2s notstaticStr: {0}, tmpObj2.notstaticStr);
Console.ReadLine();
}
}
}
结果:
Class1s staticStr: Class
tmpObj1s notstaticStr: tmpObj1
tmpObj2s notstaticStr: tmpObj2
2.const 和 static readonly 区别?
答:
const
用 const 修饰符声明的成员叫常量,是在编译期初始化并嵌入到客户端程序
static readonly
用 static readonly 修饰符声明的成员依然是变量,只不过具有和常量类似的使用方法:通过类进行访问、初始化后不可以修改。但与常量不同的是这种变量是在运行期初始化
测试类:
using System;
using System.Collections.Generic;
using System.Text;
?
namespace Example02Lib
{
public class Class1
{
//public const String strConst = Const;
//public static readonly String strStaticReadonly = StaticReadonly;
public const String strConst = Const Changed;
public static readonly String strStaticReadonly = StaticReadonly Changed;
}
}
结果
strConst : ConststrStaticReadonly : StaticReadonly Changed
3.extern 是什么意思?
答:
extern 修饰符用于声明由程序集外部实现的成员函数
经常用于系统API函数的调用(通过 DllImport )。注意,和DllImport一起使用时要加上 static 修饰符
也可以用于对于同一程序集不同版本组件的调用(用 extern 声明别名)
不能与 abstract 修饰符同时使用
示例:
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
?
namespace Example03
{
class Program
{
//注意DllImport是一个Attribute Property,在System.Runtime.InteropServices命名空间中定义
//extern与Dl
您可能关注的文档
- CHAOS直升机空战(新年版)安卓版 破解版 攻略.doc
- Chapter Four Designing Pricing Strategies定价策略.doc
- Characterising, Explaining, and Exploiting the Approximate Nature of StaticAnalysis through.pdf
- Characteristics of Aldoped ZnO thin films obtained by ultrasonic spray pyrolysis effects of Al dopi.pdf
- Characteristics of Microencapsulated Nutritional Oil for Infant Formula Food.pdf
- Characteristics of high efficiency dyesensitized solar cells.pdf
- Characteristics of solitary waves on a running film down an inclined plane under an electrostatic.pdf
- Characterization and Uncertainty Analysis of a Reference Pressure Measurement System for Wi.pdf
- Characterizing and Modeling the Dynamics of Online Popularity.pdf
- Characters Analysis of Oliver Twist of Charles Dickens.doc
文档评论(0)