西安哪里做网站户外商品网站制作

张小明 2026/1/9 10:26:01
西安哪里做网站,户外商品网站制作,沈阳网站搜索引擎优化,万网wordpress安装1.泛型类1泛型方法:只需要在方法名字后面加T,T1,T2 为了确定参数类型和返回值类型#xff0c;当然也可以参数和返回值类型定义成普通类型2 泛型类#xff1a;在类名后面添加T,目的把类型传入类当中3 泛型接口#xff1a;在接口后面添加泛型#xff0c;目的…1.泛型类1泛型方法:只需要在方法名字后面加T,T1,T2 为了确定参数类型和返回值类型当然也可以参数和返回值类型定义成普通类型2 泛型类在类名后面添加T,目的把类型传入类当中3 泛型接口在接口后面添加泛型目的把类型传接口当中//泛型字母可以写任意的字母 class PeopleTTest1,TTest2 { public string Name { get; set; } public TTest1 A1 { get; set; }// 属性的类型和传入TTest1类型保持一致 public TTest2 A2 { get; set; } // 属性的类型和传入TTest2类型保持一致 public void F1T(T c ,TTest1 a,TTest2 b) { dynamic sum (dynamic)c (dynamic)a (dynamic)b; Console.WriteLine(sum); } } //泛型接口 interface IPeopleT { int Age { get; set; } T Name { get; set; } void F1T1(T a,T1 b); } class Student : IPeoplefloat { public int Age { get; set; } public float Name { get; set; } public void F1T1(float a, T1 b) { Console.WriteLine(a b.ToString()); } }static void Main(string[] args) { Peopleint,float p1 new Peopleint,float(); //传入的int 和float类型 p1.F1float(10.1f, 10, 20.2f); Peoplestring,string p2 new Peoplestring,string(); p2.F1string(, ---------, 红客联盟白宫服务网站挂上中国国旗); Student s1 new Student(); s1.Age 10; s1.Name 19.1f; s1.F1int(10, 20); Console.ReadKey(); }2.泛型约束泛型约束: 泛型本身没有限制类型但是通过 where对泛型进行限制范围本身泛型没有类型限制的where T : struct限制T只能值类型where T : class限制T只能是引用类型where T : new() T必须有一个不带参数的构造函数的类where T : IPeople T必须是实现接口的类型 或者实现接口类的派生类 本例可以是Student、还可以继承于Student的子类SmallStudentwhere T : U限制传入类型 要么是T和U同一个类型、要么T是U的子类eg//本身泛型没有类型限制的 static void Test1T(T a) { } // where T : struct 限制T只能值类型 static void Test2T(T a,T b) where T : struct { } //where T : class 限制T只能是引用类型 static void Test3T(T a, T b) where T : class { } //where T : new() T必须有一个不带参数的构造函数的类 static void Test4T(T a, T b) where T : new() { } //where T : IPeople T必须是实现接口的类型 或者实现接口类的派生类 本例可以是Student、还可以继承于Student的子类SmallStudent static void Test5T(T a, T b) where T : IPeople { } // where T : U 限制传入类型 要么是T和U同一个类型、要么T是U的子类 static void Test6T,U(T a, U b) where T : U { } } interface IPeople { } //接口 class Student:IPeople { } // Student实现接口 class SmallStudent:Student { } // SmallStudent继承了 Student //定义people类 class People { public People() { } // 无参数构造 public People(int a) { }// 有参数的构造 }static void Main(string[] args) { //调用Test1方法 Test1int(10); Test1(hello); Test1(DateTime.Now); //调用Test2方法 Test2(10, 10); //Test2DateTime,int(DateTime.Now, 10);报错 //Test2(11, 10);报错 //调用Test3方法 Test3(11, 11); // Test4方法 Test4(new People(),new People()); // Test5方法 Test5(new Student(), new SmallStudent()); //Test6方法 Test6(new People(), new People()); Test6(new SmallStudent(), new Student()); // Test6( new Student(), new SmallStudent()); 报错 Console.ReadKey(); }3.hash表hash表:和字典很类似存储时候也是键值对的方法进行存储的通过键获取对应的值和字典不同地方在于hash表存储键值对类型不固定Hashtable hashtable new Hashtable(); 创建hash表1.添加键值对hashtable.Add(1, 2);hashtable.Add(name, 张三);2 .查询键对应的值Console.WriteLine(hashtable[1]);//获取对应键的值3.遍历hash所有的keysforeach (var item in hashtable.Keys){Console.WriteLine(item--------);}4.遍历hash所有的valuesforeach (var item in hashtable.Values){Console.WriteLine(item );}5. 遍历hash所有键值对foreach (DictionaryEntry item in hashtable){Console.WriteLine(item.Value?????????);}Console.ReadKey();6 .清空键值对hashtable.Clear();7.指定键进行移除hashtable.Remove(1);8 .包含这个键Console.WriteLine(hashtable.ContainsKey(name));9. 修改hashtable[name] 你好;10. 键值对个数Console.WriteLine(hashtable.Count);4.堆栈_stack_和队列本节是按照线性数据结构据数存储方式进行对比的栈:对要操作元素会进行一个后进先出的操作例如现实场景电梯先进去的人最后才出来后进去的人先出来添加元素称为入栈取出一个元素操作称为出栈Stackstring stack new Stackstring();---存放字符串栈结构 stack.Push(张三);--- 入栈 stack.Push(李四); stack.Push(王五); string name stack.Pop();---出栈 Console.WriteLine(name-----);---王五 Console.WriteLine(stack.Peek()); ---获取栈顶元素 李四 Console.WriteLine(stack.Count); ---2个 //stack.Clear(); ---清空栈 //stack.ToArray() ; ---转成数组队列:对元素进行先进先出的操作 例如现实场景排队买饭添加元素一般入队操作取出元素一般出队操作Queuestring queue new Queuestring(); queue.Enqueue(马化腾); ---入队 queue.Enqueue(马云); queue.Enqueue(马嘉祺); Console.WriteLine(queue.Count); Console.WriteLine(queue.Dequeue()); ---出队马化腾 Console.WriteLine(queue.Peek());---获取队顶元素马云 // queue.Clear(); 清空队列按照存储区域分别解释堆和栈特性 栈Stack 堆Heap存储内容 值类型、方法参数、局部变量 引用类型对象、装箱的值类型生命周期 随作用域结束自动释放 由垃圾回收器GC管理分配速度 快指针移动 慢动态查找可用内存内存布局 连续内存 非连续可能产生碎片访问方式 直接 通过引用间接访问线程关联 每个线程独有 所有线程共享管理方式 编译器自动管理 垃圾回收器GC管理
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

建站技术有哪些老师让做网站怎么做

UI-Grid测试策略终极指南:构建高质量前端应用 【免费下载链接】nutui 京东风格的移动端 Vue2、Vue3 组件库 、支持多端小程序(A Vue.js UI Toolkit for Mobile Web) 项目地址: https://gitcode.com/gh_mirrors/nu/nutui 在当今快速迭代的前端开发环境中&…

张小明 2025/12/31 23:26:45 网站建设

房地产公司网站建设报价方案网页界面设计的主要内容

在这个信息爆炸的数字时代,你是否也曾被付费墙阻挡在优质内容之外?Bypass Paywalls Clean作为一款专业的Chrome扩展工具,能够智能解锁超过100家主流媒体的付费内容,让你轻松访问多家国际知名媒体等顶级媒体资源。 【免费下载链接】…

张小明 2025/12/30 22:59:42 网站建设

网站建设和维护要花多少钱电子商务网站建设实验指导

华为机顶盒MAC地址修改工具:解决网络冲突的终极方案 【免费下载链接】华为机顶盒MAC修改工具使用说明 本仓库提供了一个名为“华为机顶盒mac修改工具带说明.rar”的资源文件,该工具旨在帮助用户轻松修改华为机顶盒的MAC地址。该工具操作简单,…

张小明 2025/12/31 21:21:29 网站建设

网站高端怎么阻止网站

ControlNet终极指南:5个简单步骤快速掌握AI图像生成与编辑 【免费下载链接】controlnet-union-sdxl-1.0 项目地址: https://ai.gitcode.com/hf_mirrors/xinsir/controlnet-union-sdxl-1.0 想要在AI图像生成中实现精准控制?ControlNet作为革命性的…

张小明 2026/1/1 5:28:26 网站建设

网站开发工具与技术暖通设计网站推荐

如何快速实现百度网盘全速下载:baidu-wangpan-parse完整使用指南 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 还在为百度网盘的龟速下载而烦恼吗?今…

张小明 2025/12/31 14:26:09 网站建设

如何建立个人网站的步骤域名买了怎么做网站

Beyond Compare 5授权激活终极指南:3大技术层级完整解决方案 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen 在现代软件开发工作中,有效的软件激活和授权管理已成为开发者…

张小明 2025/12/31 10:30:09 网站建设