![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C#
gouki04
面向兴趣编程
展开
-
将C#的Console.Write同步到控制台和log文件输出
将C#的Console.Write同步到控制台和log文件输出日常编写小工具时,使用Console.Write会把日志输出到控制台中,这便于在运行过程查看日志,但如果日志过多,或者希望能对日志进行查找,复制操作时,在控制台中就不方便操作了,这时就希望能把日志输出到log文件中,通过Console.SetOut可以将输出重定向到文件,不过这样就不方便在运行时查看日志进度。有没有办法可以把日志同步输出到控制台和log文件中呢?参考StackOverflow的一个回答,其实原理很简单,就是我们自己实现一个Te原创 2020-12-15 10:51:04 · 5275 阅读 · 0 评论 -
高效遍历一个数组的所有排列组合情况
高效遍历一个数组的所有排列组合情况1. 前言本文主要是基于Aviad P.的2篇文章:A C# List Permutation Iterator,A C# Combinations Iterator。分别介绍了如何遍历排列组合情况。使用的算法不需要额外分配空间,所以比较高效。2. 实现public static class Iterator{ private static vo...原创 2019-11-12 15:45:52 · 3835 阅读 · 0 评论 -
Unity引擎一些不容易发现的小技巧
Unity引擎一些不容易发现的小技巧1. transform可以直接遍历之前我只知道可以通过GetChild来遍历tranform,但不知道可以直接遍历。// 通过GetChild遍历for (var i = 0; i < transform.childCount; ++i) { var child = transform.GetChild(i); Debug.Log(child...原创 2019-09-29 15:55:10 · 272 阅读 · 0 评论 -
高效生成均匀分布的点:快速泊松碟采样算法实现(Fast Poisson Disc Sampling)
泊松分布采样算法(Fast Poisson Disc Sampling)前(fei)言(hua)最近在看一些随机地图生成算法,涉及到生成Voronoi图,这需要提前在一个平面内随机生成一堆的点,这些点还要满足随机而且尽量平均分布在平面上。一般文章都提到采用Lloyd Relaxation算法,不过这个算法比较复杂,消耗也比较大,后来看到这个泊松分布采样算法,也是用于生成一堆平均分布的点的,而且...原创 2019-08-29 18:27:54 · 5582 阅读 · 4 评论 -
xLua添加Peer机制
XLua添加Peer机制peer这个概念来自tolua++,是对等、同等的意思。其主要目标是为了解决一个lua和c++(或者c#)交互的问题:在lua下继承一个c#的类时,我们希望能给这个派生类添加一些新的成员变量,同时,希望在别的地方获取到这个派生类的对象时,也能正常访问到这些新的成员变量。首先要理解lua下是怎样访问c#的对象的。一个c#的对象传给lua时,会生成一个userdata...原创 2018-12-03 11:22:32 · 1925 阅读 · 0 评论 -
xLua的obj引用分析
xLua的obj引用分析为了防止c#和lua两端的内存泄漏,有必要了解xLua是怎样处理2端的引用关系的,尤其是在扩展xLua时,处理不得当很容易造成引用丢失或者内存泄漏。一个c#的obj是不能直接传递到lua,需要一个中间层,这个中间层就是userdata。xLua会为每个传递到lua的obj生成唯一的一个userdata,并将2者绑定起来(具体绑定方式后面分析)。这样就有2个基本问题:...原创 2018-12-03 20:56:12 · 4337 阅读 · 0 评论 -
xLua下调用GetComponent时返回值不是nil的坑
xLua下调用GetComponent返回值不是nil的坑问题看下面代码: -- gameObject没有Rigidbody,但返回值不等于nil local old_rigidbody = self.Owner.gameObject:GetComponent(typeof(CS.UnityEngine.Rigidbody)) if old_rigidbody then...原创 2018-12-04 10:48:20 · 5543 阅读 · 0 评论 -
XNA制作的《PC版坦克大战09》
坦克大战 2009~!虽然已经到2010年了~呵呵其实这个游戏早在09年的国庆期间就写好了~~不过地图没有更新完整~~也有不少不满意的地方~当然少不了bug更重要的是代码本身写得确实难看~~特别在学了设计模式以及一些OO设计原则后·深感当时的不足··所以迟迟不放上来· 这是完全模拟当年SFC的坦克大战的~里面的素材都是我自己找的~和改的~~包括图片,音乐,声音效原创 2010-01-03 20:09:00 · 3947 阅读 · 10 评论 -
WPF数据绑定详解
转载自:李小龙的博客http://blog.163.com/bruce_lee04/blog/static/45755321201008102135814/ Windows Presentation Foundation (WPF) 数据绑定为应用程序提供了一种简单而一致的方法来显示数据以及与数据交互。元素可以以公共语言运行库 (CLR) 对象和 XML 的形式绑定到各种数据源的数据转载 2010-03-10 17:45:00 · 7572 阅读 · 1 评论 -
回溯法 -- 装载问题
装载问题 有一批共n个集装箱要装上2艘载重量分别为c1和c2的轮船,其中集装箱i的重量为wi,且装载问题要求确定是否有一个合理的装载方案可将这个集装箱装上这2艘轮船。如果有,找出一种装载方案。装载方案。(1)首先将第一艘轮船尽可能装满;(2)将剩余的集装箱装上第二艘轮船。将第一艘轮船尽可能装满等价于选取全体集装箱的一个子集,使该子集中集装箱重量之和最接近。由此可知,装载问...原创 2009-10-13 20:43:00 · 6491 阅读 · 0 评论 -
谈C#中的Delegate
该文章转载自hyddd(http://www.cnblogs.com/hyddd/)] 引言 Delegate是Dotnet1.0的时候已经存在的特性了,但由于在实际工作中一直没有机会使用Delegate这个特性,所以一直没有对它作整理。这两天,我再度翻阅了一些关于Delegate的资料,并开始正式整理这个C#中著名的特性。本文将由浅入深的谈一下Delegate这个特性。一....转载 2009-09-12 09:35:00 · 1298 阅读 · 3 评论 -
C#中using的三种用法
熟悉C++的人看到using就想到引用命名空间,当然在C#中也一样。但同时C#中的using比C++中的多了两项功能,下面详细说明。 第一种用法:using + 命名空间这种用法跟C++的一样,引用一个命名空间,这样在程序里就可以直接引用命名空间里的类型,而不用详细指定其完整路径。例如:using System;这样当调用System.Write()时就可以直接写Write...原创 2009-09-12 08:38:00 · 997 阅读 · 1 评论 -
C#和java,C#和C++各有什么不同(2) -- 语言规范的比较
2.1、简单数据类型简单数据类型(Primitive)在C#中称为值类型,C#预定义的简单数据类型比Java多。例如,C#有unit,即无符号整数。表2列出了所有C#的预定义数据类型:表2:C#中的值类型 类型 说明 object 所有类型的最终极的基类 string 字符串类型...原创 2009-08-31 10:03:00 · 848 阅读 · 0 评论 -
C#和java,C#和C++各有什么不同(3) -- Java没有的功能
C#出生在Java成熟之后,因此,C#拥有一些Java(目前)还没有的绝妙功能也就不足为奇。3.1、枚举器枚举器即enum类型(Enumerator,或称为计数器),它是一个相关常量的集合。精确地说,enum类型声明为一组相关的符号常量定义了一个类型名字。例如,你可以创建一个名为Fruit(水果)的枚举器,把它作为一个变量值的类型使用,从而把变量可能的取值范围限制为枚举器中出现的值。pub...原创 2009-08-31 10:29:00 · 756 阅读 · 0 评论 -
C#和java,C#和C++各有什么不同(1) -- C#、C++和Java
C#(C-Sharp)是Microsoft的新编程语言,被誉为“C/C++家族中第一种面向组件的语言”。然而,不管它自己宣称的是什么,许多人认为C#更像是Java的一种克隆,或者是Microsoft用来替代Java的产品。事实是否是这样的呢? 本文的比较结果表明,C#不止是Java的同胞那么简单。如果你是一个Java开发者,想要学习C#或者了解更多有关C#的知识,那么本文就是你必须原创 2009-08-31 09:53:00 · 765 阅读 · 0 评论