上一页 1 2 3 4 5 6 7 8 9 10 ··· 18 下一页
摘要: 在Unity中,通常通过脚本为GameObject添加额外的属性。具体有2种方式:一种是通过硬编码为脚本字段赋值,另一种是通过反射在运行时给脚本字段赋值。 脚本通过字段硬编码为GameObject添加额外的属性 创建一个空的GameObject。 点击"Hierarchy"窗口下的GameObject,看到如下的"Inspector"窗口。 现在我们要为这个GameObject增... 阅读全文
posted @ 2015-06-19 17:24 Darren Ji 阅读(3025) 评论(0) 推荐(0) 编辑
摘要: Unity3D脚本生命周期是指从脚本的最初唤醒到脚本最终销毁的整个过程。生命周期的各个方法被封装到了MonoBehaviour类中。具体来说如下: 1、In Editor Mode 编辑模式 当在编辑器中把脚本绑定到某个GameObject的时候,调用了MonoBehaviour类的Reset方法。 2、Startup 开始运行阶段 如果脚本所绑定的GameObject是存在的... 阅读全文
posted @ 2015-06-19 11:35 Darren Ji 阅读(749) 评论(0) 推荐(0) 编辑
摘要: 在Unity3D中,只有把脚本赋予Scene中的GameObject,脚本才会得以执行。 添加Camera类型的GameObject。 Unity3D默认使用"MonoDevelop"编辑器,这里,我想使用Visual Studio作为编辑器。 依次点击"Edit","Preferences","External Tools",在"External Script Editor"项下... 阅读全文
posted @ 2015-06-19 10:20 Darren Ji 阅读(975) 评论(0) 推荐(0) 编辑
摘要: 删除"Hierarchy"窗口中的"Directional Light"。 把鼠标放在"Scene"窗口,滑动鼠标滚轮,可以对"Scene"窗口进行缩放。 把鼠标放在"Scene"窗口,按住alt键,按住鼠标左键,可以对"Scene"窗口进行角度调整。 点击"Hierarchy"窗口中的"Main Camera","Secne"窗口中的Camera处于选中状态。 在软件左上角提... 阅读全文
posted @ 2015-06-18 11:01 Darren Ji 阅读(944) 评论(0) 推荐(0) 编辑
摘要: 下载并安装Unity5软件客户端。 打开软件,注册Unity帐号,并用注册帐号登录。 点击"创建Project"按钮。 把项目命名为"My First Unity Project"。 点击左下方的"Assert packages"按钮,点击"select all"文字,点击"Done"按钮,点击"Create project"按钮。 创建完毕,多了一个与项目名称同名的文件夹... 阅读全文
posted @ 2015-06-18 08:04 Darren Ji 阅读(577) 评论(0) 推荐(0) 编辑
摘要: 网页浏览Unity3D制作的效果时,出现提示"安装unity web player"。解决办法如下: →在浏览器中输入:chrome://flags/#enable-npapi 在NPAPI中,点击"启用"。在Native Client中,点击"启用"。 →在浏览器中输入:chrome://restart →依然出现提示:unity failed to download da... 阅读全文
posted @ 2015-06-16 17:04 Darren Ji 阅读(850) 评论(0) 推荐(0) 编辑
摘要: 如何高效地进行数组复制?如果把一个变量值复制给另外一个数组变量,那么2个变量指向托管堆上同一个引用。如果想在托管堆上创建另外的一份数组实例,通常使用Array.Copy方法。class Program{static void Main(string[] args){int[] a = {1, 3, ... 阅读全文
posted @ 2015-05-29 17:29 Darren Ji 阅读(13225) 评论(0) 推荐(2) 编辑
摘要: 在开发多语言网站时,我们可以为某种语言创建一个资源文件,根据浏览器所设置的不同语言偏好,让运行时选择具体使用哪个资源文件。资源文件在生成程序集的时候被嵌入到程序集。 本篇体验,在ASP.NET MVC中实现全球化和本地化,比如,当浏览器选择英文,就让某些页面元素显示英文;当浏览器选择用中文浏览,则显示中文。 使用Visual Studio 2013创建一个无身份验证的MVC项目。 ... 阅读全文
posted @ 2015-05-28 10:16 Darren Ji 阅读(2371) 评论(3) 推荐(2) 编辑
摘要: 本篇体验除Queue和Stack之外的其它泛型集合。 SortedList SortedList和List比较相似,不同的地方在于SortedList集合元素是排过序的,往SortedList集合添加元素的时候需要添加键值对数据。在添加集合元素的时候,首先采用"二分查找算法"找到合适的位置,然后元素被放到该位置,该位置后面所有的集合元素整体后退一位。 static v... 阅读全文
posted @ 2015-05-24 14:51 Darren Ji 阅读(1680) 评论(0) 推荐(0) 编辑
摘要: 本篇体验使用C#的泛型队列Queue实现生产消费模式。 如果把生产消费想像成自动流水生产线的话,生产就是流水线的物料,消费就是某种设备对物料进行加工的行为,流水线就是队列。 现在,要写一个体现生产消费模式的泛型帮助类,比如叫ProducerConsumer。 该类肯定会维护一个有关生产、物料的Queue类型的字段,还存在一个有关消费、Action类型的字段。 在Producer... 阅读全文
posted @ 2015-05-23 09:11 Darren Ji 阅读(5932) 评论(0) 推荐(2) 编辑
摘要: .Net为我们提供了众多的泛型集合。比如,Stack先进后出,Queue先进先出,List集合元素可排序,支持索引,LinkedList,双向链表的泛型实现,不支持索引;ISet不允许被复制,他有2个实现,一个是HashSet,不维持集合元素的排序,另一个是SortedSet,支持集合元素的排序;IDictionary是一个字典集合的泛型接口,SortedList实现了IDictionary,... 阅读全文
posted @ 2015-05-22 23:26 Darren Ji 阅读(3912) 评论(1) 推荐(1) 编辑
摘要: 当有一组数据需要存放,到底是使用T[]呢,还是选择List呢? 先来看数组。 所有的数组类型都隐式地从System.Array这个抽象类派生,而System.Array又派生自System.Object。也就是说数组是引用类型。通过如下方式创建数组: int[] arrInt = new int[10]; 以上,在托管堆上分配了可以容纳10个未装箱int对象所需要的内存块(这个内存... 阅读全文
posted @ 2015-05-22 14:52 Darren Ji 阅读(1926) 评论(0) 推荐(0) 编辑
摘要: 通常,我们使用try/catch/finally语句块来捕获异常,就像在这里说的。在抛出异常的时候,使用throw和throw ex有什么区别呢? 假设,按如下的方式调用几个方法: →在Main方法中调用Method1方法,try/catch捕获异常→在Method1方法中调用Method2方法,try/catch捕获异常→在Method2方法中故意抛出异常,try/catch捕获异常 ... 阅读全文
posted @ 2015-05-22 11:34 Darren Ji 阅读(20543) 评论(0) 推荐(0) 编辑
摘要: 在Visual Studio 2012中,默认使用Microsoft自带的MS-Test测试框架。但,Visual Studio同样允许使用第三方测试框架,比如NUnit,xUnit,MbUnit,等等。本篇体验使用NUnit进行单元测试。 在Visual Studio中创建一个解决方案。 在解决方案下添加一个名称为"LogAn"的类库。 创建名称为LogAnalyzer的类,编写如下... 阅读全文
posted @ 2015-05-21 12:11 Darren Ji 阅读(1541) 评论(0) 推荐(0) 编辑
摘要: 有这样一个有关汽车的类。 public class Car { public int ID { get; set; } public string Make { get; set; } } 现在,在客户端创建一个Car的集合实例,再遍历。 static void Main(string[] args) ... 阅读全文
posted @ 2015-05-20 15:50 Darren Ji 阅读(1284) 评论(1) 推荐(1) 编辑
摘要: 关于协变逆变,SolidMango的解释是比较可取的。有了协变,比如,在需要返回IEnumerable类型的时候,可以使用IEnmerable来替代;有了逆变,比如,在需要接收IComparable类型形参方法中,可以使用IComparable类型实参来替代。 协变 先来体会协变。有2个具有继承关系的父类和子类。 public class Animal { ... 阅读全文
posted @ 2015-05-20 15:03 Darren Ji 阅读(810) 评论(0) 推荐(0) 编辑
摘要: 登录Windows Azure门户,点击"所有项目"中的网站名称。 点击"配置"。 在"远程调试"选项中选择"打开",在"远程调试VISUAL STUDIO版本"中选择"2012"。 点击下方的"保存"按钮。 来到VS2012项目中,在程序中打上断点。 右键项目,点击"发布",在"配置"中选择"Debug",点击"发布"按钮。 在Visual Studio 2012中点... 阅读全文
posted @ 2015-05-15 23:08 Darren Ji 阅读(334) 评论(0) 推荐(0) 编辑
摘要: struct对象可能被分配在托管堆上吗? --会的。 比如当对struct装箱的时候,就会被分配在托管堆上。 比如,让一个struct实现一个接口。 public interface IReport { string Name { get; } } public struct Score : IReport { ... 阅读全文
posted @ 2015-05-14 23:03 Darren Ji 阅读(716) 评论(0) 推荐(0) 编辑
摘要: 如果实例为null,调用实例方法会报如上错。 解决办法: 检查实例是否为null,考虑什么情况下实例为null,然后排除实例为null的情况。 阅读全文
posted @ 2015-05-04 22:19 Darren Ji 阅读(1912) 评论(1) 推荐(0) 编辑
摘要: 某表的某个字段作为另一个表的FOREIGN KEY,在truncate另外一个表后,再truncate某表,就报如上的错。 解决方法: → 删除另外一个表的外键 IF OBJECT_ID(N'[dbo].[外键]', 'F') IS NOT NULL ALTER TABLE [dbo].[另外一个表] DROP CONSTRAINT [外键]; GO → truncate... 阅读全文
posted @ 2015-05-03 17:06 Darren Ji 阅读(9874) 评论(0) 推荐(0) 编辑
摘要: struct是值类型,隐式继承自System.ValueType,struct实例被分配在堆栈上,由系统内存回收;class是引用类型,class的实例被分配在托管堆上,由GC回收。 struct不可以有无参构造函数(这种说法不准确,ChuckLu 提醒应说成:不能包含显式的无参构造函数。也就是说,struct有默认的无参构造函数,不能显式声明),只能有带参构造函数;class当然可以有无... 阅读全文
posted @ 2015-04-30 08:47 Darren Ji 阅读(917) 评论(4) 推荐(0) 编辑
摘要: 在学习.Net/C#或者任何一门面向对象语言的初期,大家都写过交换两个变量值,通常是通过临时变量来实现。本篇使用多种方式实现两个变量值的交换。 假设int x =1; int y = 2;现在交换两个变量的值。 使用临时变量实现 static void Main(string[] args) { int x = 1; ... 阅读全文
posted @ 2015-04-29 08:21 Darren Ji 阅读(12981) 评论(16) 推荐(3) 编辑
摘要: 什么是.NET? 起源:比尔盖茨在2000年的Professional Developers Conference介绍了一个崭新的平台叫作Next Generation Windows Service,也就是后来的.NET。 软件层:.NET可以被看作是介于操作系统和编程语言之间的软件层,它可以支持多种编程语言,包括C#,VB.NET,C++,F#,等等。 用来产生托管代码的框架、平台:传... 阅读全文
posted @ 2015-04-27 23:51 Darren Ji 阅读(1675) 评论(0) 推荐(1) 编辑
摘要: 标题可能无法表达我的本意。比如,有这样一个枚举: public enum MyChoice { MyFirstChoice = 0, MySecondChoice =1, MyThirdChoice = 2 } 数据库中,某表某字段保存值为"0,1,2",在显示的时候,我们希望是"第一个选择,第二个选择,第三个选择"... 阅读全文
posted @ 2015-04-26 09:30 Darren Ji 阅读(4312) 评论(3) 推荐(0) 编辑
摘要: Jeffrey Zhao真是神一样的存在,伊太结棍了(上海话),每次看他的博客得使劲使劲使劲地啃。本篇源于Jeffery Zhao的"逆泛型执行器"这篇文章。该文提到了为以下的接口写一个泛型方法: public interface IRecord { string GetString(string field); int GetInt(stri... 阅读全文
posted @ 2015-04-25 09:29 Darren Ji 阅读(3280) 评论(4) 推荐(1) 编辑
摘要: 报错:System.NotSupportedException: LINQ to Entities does not recognize the method ...... get_Item(Int32)' method, and this method cannot be translated into a store expression. 在控制器中有如下一段代码: var tem... 阅读全文
posted @ 2015-04-24 15:21 Darren Ji 阅读(3518) 评论(0) 推荐(0) 编辑
摘要: 我们经常通过泛型构造函数创建泛型实例,也常调用实例的扩展方法。以下的代码在项目中随处可见: static void Main(string[] args) { var strs = new List {"hello","world"}; var result = strs.Where(s => s.StartsW... 阅读全文
posted @ 2015-04-24 10:54 Darren Ji 阅读(615) 评论(2) 推荐(0) 编辑
摘要: 以前发短信使用过短信猫,现在,更多地是使用第三方API。大致过程是: → 用户在页面输入手机号码→ 用户点击"获取验证码"按钮,把手机号码发送给服务端,服务端产生几位数的随机码,并保存在某个地方(Session, Applicaiton, 数据库, 等等),调用第三方的API→ 第三方发送几位数的随机码至用户手机→ 用户在页面输入接收到的随机码→ 把随机码等发送给服务端,与服务端保存的随机... 阅读全文
posted @ 2015-04-23 10:48 Darren Ji 阅读(9285) 评论(4) 推荐(6) 编辑
摘要: 在ASP.NET MVC的控制器中可以实现Session处理。如果要在前端视图页实现Session该如何做呢?可以使用window.sessionStorage来做。 AlexChittock用jQuery做了实现。在这里: https://github.com/AlexChittock/JQuery-Session-Plugin 具体实现很简单: @{ ViewBag.Title ... 阅读全文
posted @ 2015-04-22 22:52 Darren Ji 阅读(4107) 评论(0) 推荐(0) 编辑
摘要: 有时候,当用户请求一个Controller下的Action,我们希望,在单位时间间隔内,比如每秒,每分钟,每小时,每天,每星期,限制同一个IP地址对某个Action的请求次数。如何做呢? stefanprodan的MvcThrottle能很好地解决这个问题,以及其它类型的IP限制问题。在这里:https://github.com/stefanprodan/MvcThrottle 把项目从G... 阅读全文
posted @ 2015-04-22 10:55 Darren Ji 阅读(6909) 评论(5) 推荐(5) 编辑
摘要: 本篇体验在ASP.NET MVC中使用ASP.NET Identity增删改查用户。 源码在这里:https://github.com/darrenji/UseIdentityCRUDUserInMVC 在VS2013中创建一个MVC项目,用默认的"无身份验证"作为身份验证机制。 通过控制台下载Bootstrap。 Install-Package -version 3.0.3 bo... 阅读全文
posted @ 2015-04-21 15:15 Darren Ji 阅读(3156) 评论(4) 推荐(3) 编辑
摘要: 早在2005年的时候,微软随着ASP.NET 推出了membership机制,十年磨一剑,如今的ASP.NET Identity是否足够强大,一起来体会。 在VS2013下新建项目,选择"ASP.NET Web应用程序。",点击"确定"。 选择"MVC"模版。 创建的网站包括三个核心组件: 1、Microsoft.AspNet.Identity.EntityFramework 这是基于... 阅读全文
posted @ 2015-04-20 23:41 Darren Ji 阅读(1310) 评论(3) 推荐(4) 编辑
摘要: 在前一篇中,了解了Task的基本用法 如果一个方法返回Task,Task,如何获取Task的返回值,获取值的过程会阻塞线程吗? static void Main(string[] args) { var result = DoWorkAsync().Result; Console.WriteLine(result);... 阅读全文
posted @ 2015-04-19 10:25 Darren Ji 阅读(455) 评论(0) 推荐(0) 编辑
摘要: 当我们调用第三方的Web API服务的时候,不一定每次都是成功的。这时候,我们可能会再多尝试几次,也有可能延迟一段时间再去尝试调用服务。 Task的静态方法Delay允许我们延迟执行某个Task,此方法可以让我们做到延迟一段时间再去调用服务;多尝试几次调用如何实现呢?可以用循环遍历。 在"使用HttpClient对ASP.NET Web API服务实现增删改查"中,创建了一个ASP.NET... 阅读全文
posted @ 2015-04-19 00:29 Darren Ji 阅读(1950) 评论(0) 推荐(0) 编辑
摘要: 本篇体验使用HttpClient对ASP.NET Web API服务实现增删改查。 创建ASP.NET Web API项目 新建项目,选择"ASP.NET MVC 4 Web应用程序"。 选择"Web API"。 在Models文件夹下创建Product类。 public class Product { public int Id { get; set... 阅读全文
posted @ 2015-04-18 16:55 Darren Ji 阅读(2404) 评论(5) 推荐(1) 编辑
摘要: 本篇体验使用HttpClient消费ASP.NET Web API服务,例子比较简单。 依次点击"文件","新建","项目"。 选择"ASP.NET Web API"项目。 在Models文件夹下创建Person.cs类。 public class Person { public int Id { get; set; } public ... 阅读全文
posted @ 2015-04-18 12:22 Darren Ji 阅读(1186) 评论(0) 推荐(0) 编辑
摘要: 在没有使用异步Action之前,在Action内,比如有如下的写法: public ActionResult Index() { CustomerHelper cHelper = new CustomerHelper(); List result = cHelper.GetCustomerData(); return View(result); } 以上,假设,Get... 阅读全文
posted @ 2015-04-18 09:38 Darren Ji 阅读(6722) 评论(4) 推荐(6) 编辑
摘要: 我们知道,每个应用程序就是一个进程,一个进程有多个线程。Task Parallel Library为我们的异步编程、多线程编程提供了强有力的支持,它允许一个主线程运行的同时,另外的一些线程或Task也同时运行。本篇体验基本用法。 基本用法 Taks的构造函数接收的类型是Action,也就是一个委托。 static void Main(string[] args) ... 阅读全文
posted @ 2015-04-17 23:56 Darren Ji 阅读(863) 评论(0) 推荐(0) 编辑
摘要: 在ASP.NET MVC中,ModelState中包含了验证失败的错误信息,具体被存储在ModelState.Values[i].Errors[j].ErrorMessage属性中。当然,通过打断点,单步调试可以查看具体的验证失败错误信息,但有时候希望把ModelState中的验证失败信息遍历显示出来。 ModelState类型是ModelStateDictionary,ModelStateD... 阅读全文
posted @ 2015-04-10 22:51 Darren Ji 阅读(2913) 评论(0) 推荐(0) 编辑
摘要: 从ASP.NET MVC 5开始,Html.DropDownListFor已经提供了对Enum的支持,但在这以前,需要通过帮助方法或扩展方法来让Html.DropDownListFor显示枚举值。 本篇解决在ASP.NET MVC 4 下Html.DropDownListFor显示默认项的问题。 以上,使用Select是通过Html.DropDownListFor来实现的,Selec... 阅读全文
posted @ 2015-04-10 10:12 Darren Ji 阅读(2603) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 18 下一页

我的公众号:新语新世界,欢迎关注。