2022年Unity3D编程规范总结 .docx

上传人:Che****ry 文档编号:12798652 上传时间:2022-04-26 格式:DOCX 页数:28 大小:163KB
返回 下载 相关 举报
2022年Unity3D编程规范总结 .docx_第1页
第1页 / 共28页
2022年Unity3D编程规范总结 .docx_第2页
第2页 / 共28页
点击查看更多>>
资源描述

《2022年Unity3D编程规范总结 .docx》由会员分享,可在线阅读,更多相关《2022年Unity3D编程规范总结 .docx(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Unity3D个人编程规范总结 摘要:如是脚本是继承MonoBehaviour1. 变量名应用大写开首定名;如CanOpen2. 组件工具定名应用组件大写缩写称号开首3. 函数的参数应用小写字母开首定名;如假如脚本是继承MonoBehaviour;_.如 Go_Button;messageData; 4. 函数的参 1. 变量名使用大写开头命名;如CanOpen;2. 组件对象命名使用组件大写缩写名称开头+_. 如 Go_Button;3. 函数的参数使用小写字母开头命名;如messageData;4. 函数的参数假如是组件对象,使用组件缩写小写字母+_+名称;如 go_myMj;5. 函数中

2、新创建的暂时变量使用_开头 + 小写字母开头 ,如_dataString;6. 函数中新创建的组件对象使用_+ 组件缩写小写字母 +_+ 名称命名;如 _mtrl_loginPanel;7. 场景中假如使用是UI 界面的组件 ,命名方式参照其次条;假如脚本不是继承MonoBehaviour8.a 类9. 【规章 1-1 】使用 Pascal规章命名类名,即首字母要大写;10. 【规章 1-2 】使用能够反映类功能的名词或名词短语命名类;11. 【规章 1-3 】不要使用“I”、“ C”、“ _”等特定含义前缀;12. 【规章 1-4 】自定义反常类应以Exception结尾;13. 【规章 1

3、-5 】文件名要能反映类的内容,最好是和类同名;14.b类字段15. 【规章 2-1 】用 camel规章来命名类成员变量名称,即首单词(或单词缩写)小写;16. 【规章 2-2 】类字段变量名前可加“_”前缀;17. 【规章 2-3 】坚决禁止在一般变量前加“m_ ”(这是 VC 老命名规章);18.c )方法19. 【规章 3-1 】方法名采纳 Pascal 规章,第一个字符要大写;20. 【规章 3-2 】方法名应使用动词或动词短语;21. 【规章 3-3 】类中拜访修饰符或功能相同的方法应当放在一起,且公共或实现接口的方法在前;22.d )属性23. 【规章 4-1 】使用名词定义属性

4、,属性使用Pascal 规章,首字符大写;24. 【规章 4-2 】属性和相应字段名称要关联,可以使用“重构”菜单来生成属性;25.e )参数28 / 2426. 【规章5-1】参数采纳 camel规章命名,且首字符小写;27. 【规章5-2】使用描述性参数名称,参数名称应当具有最够的说明性;28. 【规章5-3】不要给参数加匈牙利语类型表示法的前缀;29. 【规章5-4】检查方法全部输入参数的有效性;30.f )常量31. 【规章6-1】只读常量使用Pascal 命名规章,即首字母大写;32. 【规章6-2】枚举名使用 Pascal 规章命名,枚举成员本质属于常量,命名规章同上;33. 【规

5、章6-3】枚举值从小到大次序定义;34. 【规章6-4】静态字段或属性采纳Pascal 规章,即首字符大写;35.g )大事36. 【规章 8-1 】托付名称采纳Pascal 规章,即首字符大写;37. 【规章 8-2 】定义大事的托付要使用EventHandler后缀,且包括 sender和 e 两个参数;38. 【规章 8-3 】大事用到的参数类,名称要带EventArgs后缀;二unity3D之 C# 命名规章与风格时间: 2022-10-25 23:09来源:互联网作者:脚印浏览:2120次 保藏 挑错 举荐 打印1.文件命名组织 1-1文件命名1.文件名遵从 Pascal 命名法,无

6、特别情形,扩展名小写;2.使用统一而又通用的文件扩展名:C#类 .cs1-2 文件注释 1. 在每个文件头必需包含以下注释说明1 在每个文件头必需包含以下注释说明/*-/ Copyright C 2004软件有限公司/版权全部;/文件名:/文件功能描述:/创建标识:/修改标识:/修改描述:/修改标识:/修改描述:/-*/文件功能描述只需简述,详细详情在类的注释中描述;创建标识和修改标识由创建或修改人员的拼音或英文名加日期组成;如:Jiekengxu 20040408一天内有多个修改的只需做一个在注释说明中做一个修改标识就够了;在全部的代码修改处加上修改标识的注释;2. 代码外观2-1 列宽 代

7、码列宽掌握在110 字符左右;2-2 换行 当表达式超出或即将超出规定的列宽,遵循以下规章进行换行1、在逗号后换行;2、 在操作符前换行;3、规章 1 优先于规章2 ;当以上规章会导致代码纷乱的时候自己实行更敏捷的换行规章;2-3 缩进 缩进应当是每行一个Tab4个空格 ,不要在代码中使用Tab 字符;Visual Studio.Net设置:工具 - 选项 - 文本编辑器 -C#-制表符 - 插入空格2-4 空行 空行是为了将规律上相关联的代码分块,以便提高代码的可阅读性;在以下情形下使用两个空行1、接口和类的定义之间;2、枚举和类的定义之间;3、类与类的定义之间;在以下情形下使用一个空行1、

8、方法与方法、属性与属性之间;2、方法中变量声明与语句之间;3、方法与方法之间;4、方法中不同的规律块之间;5、方法中的返回语句与其他的语句之间;6、属性与方法、属性与字段、方法与字段之间;7、注释与它注释的语句间不空行,但与其他的语句间空一行;2-5 空格 在以下情形中要使用到空格1、 关键字和左括符“ ” 应当用空格隔开;如while true留意在方法名和左括符“ ” 之间不要使用空格,这样有助于辨认代码中的方法调用与关键字;2、 多个参数用逗号隔开,每个逗号后都应加一个空格;3、 除了 .之外,全部的二元操作符都应用空格与它们的操作数隔开;一元操作符、+ 及- 与操作 数间不需要空格;如

9、a += c + d;a = a + b / c * d; while d+ = s+ n+;PrintSize“ size is“ + size +“n ” ;4、 语句中的表达式之间用空格隔开;如for expr1; expr2; expr32-6 括号 - 1 、 左括号“ ” 不要紧靠关键字,中间用一个空格隔开;2、 左括号“ ” 与方法名之间不要添加任何空格;3、 没有必要的话不要在返回语句中使用 ;如if conditionArray.Remove1 return 12-7 花括号 - 1 、 左花括号 “ ” 放于关键字或方法名的下一行并与之对齐;如if conditionpub

10、lic int Addint x, int y2、 左花括号 “ ” 要与相应的右花括号“ ”对齐;3、 通常情形下左花括号“ ”单独成行,不与任何语句并列一行;4、 if 、while 、 do 语句后肯定要使用 ,即使 号中为空或只有一条语句;如if somevalue = 1somevalue = 2;5、 右花括号 “ ” 后建议加一个注释以便于便利的找到与之相应的;如while 1if valid / if valid else / not valid / end forever3.程序注释 3-1注释概述 1 、修改代码时,总是使代码四周的注释保持最新;2、在每个例程的开头,供应标

11、准的注释样本以指示例程的用途、假设和限制很有帮忙;注释样本应当是说明它为什么存在和可以做什么的简短介绍.3、防止在代码行的末尾添加注释;行尾注释使代码更难阅读;不过在批注变量声明时,行尾注释是合适的;在这种情形下,将全部行尾注释在公共制表位处对齐;4 、防止杂乱的注释,如一整行星号;而是应当使用空白将注释同代码分开;5 、防止在块注释的四周加上印刷框;这样看起来可能很美丽,但是难于爱护;6 、在部署发布之前,移除全部暂时或无关的注释,以防止在日后的爱护工作中产生纷乱;7 、假如需要用注释来说明复杂的代码节,请检查此代码以确定是否应当重写它;尽一切可能不注释难以懂得的代码,而应当重写它; 尽管一

12、般不应当为了使代码更简洁以便于人们使用而牺牲性能,但必需保持性能和可爱护性之间的平稳;8 、在编写注释时使用完整的句子;注释应当阐明代码,而不应当增加多义性;9 、在编写代码时就注释,由于以后很可能没有时间这样做;另外,假如有机会复查已编写的代码,在今日看来很明显的东西六周以后或许就不明显了;10 、防止余外的或不适当的注释,如幽默的不主要的备注;11 、 使用注释来说明代码的意图;它们不应作为代码的联机翻译;12 、 注释代码中不非常明显的任何内容;13 、为了防止问题反复显现,对错误修复和解决方法代码总是使用注释,特别是在团队环境中;14 、对由循环和规律分支组成的代码使用注释;这些是帮忙

13、源代码读者的主要方面;15 、在整个应用程序中,使用具有一样的标点和结构的统一样式来构造注释;16 、用空白将注释同注释分隔符分开;在没有颜色提示的情形下查看注释时,这样做会使注释很明显且简洁被找到;17 、在全部的代码修改处加上修改标识的注释;18 、为了是层次清楚,在闭合的右花括号后注释该闭合所对应的起点;namespace Langchao.Procument.Web / namespace Langchao.Procument.Web3-2 文档型注释该类注释采纳 .Net 已定义好的 Xml 标签来标记, 在声明接口、 类、方法、属性、字段都应当使用该类注释,以便代码完成后直接生成代

14、码文档,让别人更好的明白代码的实现和接口;如/MyMethod is a method in the MyClass class./Heres how you could make a second paragraph in a description./for information about output statements./public static void MyMethodint Int13-3 单行注释 该类注释用于1 方法内的代码注释;如变量的声明、代码或代码段的说明;注释示例:/注释语句/private int number;或/注释语句private int numbe

15、r;2 方法内变量的声明或花括号后的注释, 注释示例:if 1 = 1 / always truestatement; / always true3-4 注释标签标签用法作用 ctext text期望将其指示为代码的文本;为您供应了一种将说明中的文本标记为代码的方法;使用将多行指示为代码content content段落文本;用于诸如 或 等标记内,使您得以将结构添加到文本中; descriptionname为方法参数名;将此名称用单引号括起来 ;应当用于方法声明的注释中,以描述方法的一个参数; name要引用的参数名; 将此名称用双引号括起来 ;标记为您供应了一种指示词为参数的方法;可以处理

16、XML文件,从而用某种特殊的方法格式化该参数; cref = member对可以通过当前编译环境进行调用的成员或字段的引用;编译器检查到给定代码元素存在后,将member传递给输出XML中的元素名;必需将member括在双引号 中;使您得以从文本内指定链接;使用指示期望在 “请参阅” 一节中显现的文本; cref = member 对可以通过当前编译环境进行调用的成员或字段的引用;编译器检查到给定代码元素存在后, 将 member传递给输出XML中的元素名; 必需将member括在双引号 中使您得以指定期望在“请参阅”一节中显现的文本;使用从文本descriptiondescription代码

17、示例的说明;使用标记可以指定使用方法或其他库成员的示例;一般情形下,这将涉及到 标记的使用; content content为期望将其标记为代码的文本;记为您供应了一种将多行指示为代码的方法;使用指示应将说明中的文本标记为代码description此处 description为对象的摘要;应当用于描述类型成员; 使用 以供应有关类型本身的信息; descriptioncref = member 对可从当前编译环境中猎取 的反常的引用;编译器检查到给定反常存在后,将member转换为输出XML中的规范化元素名;必需将member括在双引号 中; description说明; 标记使您可以指定类能

18、够引发的反常;filename包含文档的文件名;该文件名可用路径加以限定;将 filename括在单引号中 ; Tagpath :filename中指向标记名的标记路径;将此路径括在单引号中 ;name注释前边的标记中的名称说明符;名称具有一个id ; id 位于注释之前的标记的id ;将此id括在双引号中 ;标记使您得以引用描述源代码中 类型和成员的另一文件中的注释;这是除了将文档注释直接置于源代码文件中之外的另一种可选方法; 标记使用 XML XPath 语法;有关自定义 使用的方法,请参阅XPath 文档; term description term description term 定

19、义的项,该项将在 text 中定义; description 目符号列表或编号列表中的项或者 term 的定义; 块用于定义表或定义列表中的标题行;定义表时,只需为标题中的项供应一个项;列表中的每一项用块指定;创建定义列表时,既需要指定term也需要指定text ;但是,对于表、项目符号列表或编号列表,只需为text供应一个项;列表或表所拥有的块数可以依据需要而定; description cref = member 对可以通过当前编译环境进 行调用的成员或字段的引用;编译器检查到给定代码元素存在后,将 member转换为输出XML 中的规范化元素名;必需将member括在双引号 中; des

20、cription成员的拜访的说明;标记使您得以将成员的拜访记入文档;System.Security.PermissionSet使您得以指定对成员的拜访;descriptiondescription成员的说明; 标记是可以指定有关类或其他类型的概述信息的位置;是可以描述该类型的成员的位置; descriptiondescription返回值的说明; 标记应当用于方法声明的注释,以描述返回值;property-descriptionproperty-description属性的说明; 标记使您得以描述属性;请留意,当在Visual Studio .NET开发环境中通过代码向导添加属性时, 它将会为

21、新属性添加标记; 然后, 应当手动添加标记以描述该属性所表示的值;4.申明 4-1每行声明数 一行只建议作一个声明,并按字母次序排列;如int level; /举荐int size; /举荐int x, y; /不举荐4-2 初始化 建议在变量声明时就对其做初始化;4-3 位置 变量建议置于块的开头处,不要总是在第一次使用它们的地方做声明;如void MyMethodint int1 = 0; / beginning of method blockif conditionint int2 = 0; / beginning of if block.不过也有一个例外for int i = 0; i

22、 maxLoops; i+.应防止不同层次间的变量重名,如int count;.void MyMethodif conditionint count = 0; /防止.4-4 类和接口的声明1 在方法名与其后的左括号间没有任何空格;2 左花括号 “ ” 显现在声明的下行并与之对齐,单独成行;3 方法间用一个空行隔开;4-5 字段的声明 不要使用是public或 protected的实例字段;假如防止将字段直接公开给开发人员,可以更轻松地对类进行版本掌握,缘由是在爱护二进制兼容性时字段不能被更换为属性;考虑为字段供应get和 set属性拜访器,而不是使它们成为公共的;get和 set属性拜访器中

23、可执行代码的存在使得可以进行后续改进,如在使用属性或者得到属性更换通知时依据需要创建对象;下面的代码示例阐释带有get和 set属性拜访器的私有实例字段的正确使用;示例:public class Control: Componentprivate int handle; public int Handlegetreturn handle;5. 命名规范 5-1命名概述 名称应当说明“什么”而不是“如何”;通过防止使用公开基础实现(它们会发生转变) 的名称, 可以保留简化复杂性的抽象层;例如,可以使用 GetNextStudent, 而不是GetNextArrayElement;命名原就是:挑选

24、正确名称时的困难可能说明需要进一步分析或定义项的目的;使名称足够长以便有肯定的意义,并且足够短以防止冗长;唯独名称在编程上仅用于将各项区分开;表现力强的名称是为了帮忙人们阅读;因此,供应人们可以懂得的名称是有意义的;不过, 请确保挑选的名称符合适用语言的规章和标准;以下几点是举荐的命名方法;1、防止简洁被主观说明的难懂的名称,如方面名AnalyzeThis,或者属性名xxK8 ;这样的名称会导致多义性;2、在类属性的名称中包含类名是余外的,如Book.BookTitle;而是应当使用Book.Title;3、只要合适,在变量名的末尾或开头加运算限定符(Avg 、Sum 、 Min 、Max 、

25、Index );4、在变量名中使用互补对,如min/max、 begin/end和 open/close;5、布尔变量名应当包含Is,这意味着Yes/No或 True/False值,如fileIsFound; 6、在命名状态变量时,防止使用诸如Flag的术语;状态变量不同于布尔变量的地方是它可以具有两个以上的可能值;不是使用documentFlag,而是使用更具描述性的名称,如documentFormatType; (此项只供参考)7、即使对于可能仅显现在几个代码行中的生存期很短的变量,仍旧使用有意义的名称;仅对于短循环索引使用单字母变量名,如i 或 j; 可能的情形下,尽量不要使用原义数字或

26、原义字符串,如For i = 1 To 7;而是使用命名常数,如For i = 1 To NUM_DAYS_IN_WEEK以便于爱护和懂得;5-2 大小写规章 大写标识符中的全部字母都大写;仅对于由两个或者更少字母组成的标识符使用该商定;例如:System.IO System.Web.UI下表汇总了大写规章,并供应了不同类型的标识符的示例;标识符大小写示例类PascalAppDomain枚举类型 PascalErrorLevel枚举值 PascalFatalError 大事 PascalValueChange反常类 PascalWebException留意 总是以 Exception后缀结尾;

27、只读的静态字段PascalRedValue接口 PascalIDisposable留意 总是以 I 前缀开头;方法PascalToString命名空间 PascalSystem.Drawing属性 PascalBackColor公共实例字段PascalRedValue留意 很少使用;属性优于使用公共实例字段;受爱护的实例字段Camel redValue留意 很少使用;属性优于使用受爱护的实例字段;私有的实例字段CamelredValue参数 CameltypeName方法内的变量 CamelbackColor5-3 缩写 为了防止混淆和保证跨语言交互操作,请遵循有关区缩写的使用的以下规章:1

28、不要将缩写或缩略形式用作标识符名称的组成部分;例如,使用GetWindow,而不要使用GetWin;2 不要使用运算机领域中未被普遍接受的缩写;3 在适当的时候, 使用众所周知的缩写替换冗长的词组名称;缩例如, 用 UI作为User Interface写,用OLAP作为 On-line Analytical Processing的缩写;4 在使用缩写时, 对于超过两个字符长度的缩写请使用 Pascal 大小写或 Camel 大小写;例如, 使用 HtmlButton 或 HTMLButton ;但是,应当大写仅有两个字符的缩写,如, System.IO , 而不是 System.Io ;5 不

29、要在标识符或参数名称中使用缩写;假如必需使用缩写,对于由多于两个字符所组成的缩写请使用 Camel 大小写,虽然这和单词的标准缩写相冲突;5-4 命名空间 1、命名命名空间时的一般性规章是使用公司名称,后跟技术名称和可选的功能与设计,如下所示;CompanyName.TechnologyName.Feature.Design例如:namespace Langchao.Procurement /浪潮公司的选购单治理系统namespace Langchao.Procurement.DataRules /浪潮公司的选购单治理系统的业务规章模块2、命名空间使用Pascal 大小写,用逗号分隔开;3、T

30、echnologyName指的是该项目的英文缩写,或软件名;4、命名空间和类不能使用同样的名字;例如,有一个类被命名为Debug后,就不要再使用 Debug作为一个名称空间名;5-5 类 1、使用Pascal大小写;2、用名词或名词短语命名类;3、使用全称防止缩写,除非缩写已是一种公认的商定,如URL 、HTML4 、不要使用类型前缀,如在类名称上对类使用C 前缀;例如,使用类名称FileStream,而不是CFileStream;5 、不要使用下划线字符_;6 、有时候需要供应以字母I 开头的类名称,虽然该类不是接口;只要I 是作为类名称组成部分的整个单词的第一个字母,这便是适当的;例如,类

31、名称IdentityStore是适当的;在适当的地方,使用复合单词命名派生的类;派生类名称的其次个部分应当是基类的名称;例如, ApplicationException对于从名为Exception的类派生的类是适当的名称,缘由ApplicationException是一种 Exception;请在应用该规章时进行合理的判定;例如,Button 对于从Control派生的类是适当的名称;尽管按钮是一种控件,但是将Control作为类名称的一部分将使名称不必要地加长;public class FileStream public class Button public class String5-6

32、 接口 以下规章概述接口的命名指南:1、用名词或名词短语,或者描述行为的形容词命名接口;例如,接口名称IComponent使用描述性名词;接口名称ICustomAttributeProvider使用名词短语;名称IPersistable使用形容词;2、使用 Pascal大小写;3、少用缩写;4、给接口名称加上字母I 前缀,以指示该类型为接口;在定义类/ 接口对(其中类是接口的标准实现)时使用相像的名称;两个名称的区分应当只是接口名称上有字母I 前缀;5、不要使用下划线字符_ ;6、当类是接口的标准执行时,定义这一对类 / 接口组合就要使用相像的名称;两个名称的不同之处只是接口名前有一个I 前缀

33、;以下是正确命名的接口的示例;public interface IServiceProviderpublic interface IFormatable以下代码示例阐释如何定义IComponent接口及其标准实现Component类;public interface IComponent/ Implementation code goes here.public class Component: IComponent/ Implementation code goes here.5-7 属性 Attribute应当总是将后缀Attribute添加到自定义属性类;以下是正确命名的属性类的示例;p

34、ublic class ObsoleteAttribute5-8 枚举 Enum枚举 Enum值类型从 Enum类继承;以下规章概述枚举的命名指南:1 对于 Enum类型和值名称使用Pascal大小写;2 少用缩写;3 不要在Enum类型名称上使用Enum后缀;4 对大多数 Enum类型使用单数名称,但是对作为位域的Enum类型使用复数名称;5 总是将FlagsAttribute添加到位域Enum类型;5-9 参数 以下规章概述参数的命名指南:1、使用描述性参数名称;参数名称应当具有足够的描述性,以便参数的名称及其类型可用于在大多数情形下确定它的含义;2、对参数名称使用Camel大小写;3、

35、使用描述参数的含义的名称,而不要使用描述参数的类型的名称;开发工具将供应有关参数的类型的有意义的信息;因此,通过描述意义,可以更好地使用参数的名称;少用基于类型的参数名称,仅在适合使用它们的地方使用它们;4、不要使用保留的参数;保留的参数是专用参数,假如需要,可以在将来的版本中公开它们;相反,假如在类库的将来版本中需要更多的数据,请为方法添加新的重载;5、不要给参数名称加匈牙利语类型表示法的前缀;以下是正确命名的参数的示例;Type GetTypestring typeNamestring Formatstring format, args As object5-10 方法 以下规章概述方法的

36、命名指南:1 使用动词或动词短语命名方法;2 使用 Pascal大小写;3 以下是正确命名的方法的实例;RemoveAll GetCharArray Invoke5-11 属性 property以下规章概述属性的命名指南:1 使用名词或名词短语命名属性;2 使用 Pascal大小写;3 不要使用匈牙利语表示法;4 考虑用与属性的基础类型相同的名称创建属性;例如,假如声明名为Color的属性,就属性的类型同样应当是Color ;请参阅本主题中后面的示例;以下代码示例阐释正确的属性命名;public class SampleClasspublic Color BackColor/ Code for

37、 Get and Set accessors goes here.以下代码示例阐释供应其名称与类型相同的属性;public enum Color/ Insert code for Enum here.public class Controlpublic Color Colorget/ Insert code here.set/ Insert code here.以下代码示例不正确,缘由是Color属性是Integer类型的;public enum Color/ Insert code for Enum here.public class Controlpublic int Color/ Ins

38、ert code here在不正确的示例中,不行能引用Color枚举的成员; Color.Xxx将被说明为拜访一个成员, 该成员第一猎取Color属性( C#中为 int类型)的值,然后再拜访该值的某个成员(该成员必需是 System.Int32的实例成员);5-12 大事 以下规章概述大事的命名指南:1、对大事处理程序名称使用EventHandler后缀;2、指定两个名为sender和 e 的参数; sender参数表示引发大事的对象;sender参数始终是 object类型的,即使在可以使用更为特定的类型时也如此;与大事相关联的状态封装在名为e 的大事类的实例中;对e 参数类型使用适当而特定的大事类;3、用 EventArgs后缀命名大事参数类;4、考虑用动词命名大事;5、使用动名词(动词的“ing ”形式)创建表示大事前的概念的大事名称,用过去式表示事件后;例如,可以取消的Close大事应当具有Closing大事和Closed大事;不要使用BeforeXxx/AfterXxx命名模式;6、不要在类型的大事声明上使用前缀或者后缀;例如,使用Close ,而不要使用OnClose ;7、通常情形下,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁