Tag: C#的

在链表中添加节点时使用双指针的原因是什么?

下面的两个代码示例都在链表顶部添加一个节点。 但是,第一个代码示例使用双指针,而第二个代码示例使用单个指针 代码示例1: struct node* push(struct node **head, int data) { struct node* newnode = malloc(sizeof(struct node)); newnode->data = data; newnode->next = *head; return newnode; } push(&head,1); 代码示例2: struct node* push(struct node *head, int data) { struct node* newnode = malloc(sizeof(struct node)); newnode->data = data; newnode->next = head; return newnode; } push(head,1) 两种策略都有效。 但是,很多使用链表的程序使用双指针来添加新节点。 我知道双指针是什么。 […]

转换操作符如何在C ++中工作?

考虑这个简单的例子: template <class Type> class smartref { public: smartref() : data(new Type) { } operator Type&(){ return *data; } private: Type* data; }; class person { public: void think() { std::cout << "I am thinking"; } }; int main() { smartref<person> p; p.think(); // why does not the compiler try substituting Type&? } 转换操作符如何在C ++中工作? […]

在xcode上识别新的iPhone模型(5,5c,5s)

我正在编写一个具有不同function的应用程序,具体取决于iPhone的型号。 有没有办法区分iPhone 5和5c 5s? 我不能在显示器上进行检查,因为它是相同的。 提前致谢。

C#:方差(协方差/反variables)是多态吗?

我想从网上的几篇文章和StackOverflow上的问题中Contravariance Covariance和“ Contravariance ”一词的确切含义,从我能理解的情况来看,这只是多态的另一个词 。 我是否正确的以上陈述? 还是我错了?

使用C#/ Windows窗体的简单animation

我需要在C#/ Windows窗体中为万圣节显示敲出一个快速animation。 只有一些二维形状在一个坚实的背景上移动。 既然这只是一个快速的一次性项目,我真的不想安装和学习一整套新的工具。 (DirectX开发工具包,Silverlight,Flash等)。我也必须安装在多台电脑上,所以超出基本的.Net框架(2.0)将是一个痛苦的屁股。 对于工具我有VS2k8,25年的发展经验,独轮车,大屠杀斗篷,大约2天将其敲除。 在我的Atari 130XE上使用汇编程序之后,我还没有完成animation(用于翻页和玩家/导弹graphics)。 build议吗? 以下是我想知道的一些事情: 我可以通过摆弄它的OnPaint处理程序来绘制任何空的小部件(如面板),对吧? 这就是我如何绘制一个自定义的部件。 有没有比这更好的技术? 在Windows窗体中是否有这种types的页面翻转技术? 我不是在寻找高帧率,就像闪烁/绘图一样必要。 谢谢。 Post Mortem编辑…“几天后编码” 那么这个项目就完成了。 下面的链接派上用场,尽pipe其中有一些是404。(我希望SO会允许多于一个的答复被标记为“正确的”)。 我不得不克服的最大的问题是闪烁,当我试图直接在表单上画一个持续的错误。 对表单使用OnPaint事件:坏主意。 我从来没有那个工作; 大量的神秘错误(堆栈溢出或ArgumentNullExceptions)。 我使用一个大小的面板来填补表格,工作得很好。 无论如何,使用OnPaint方法是很慢的。 我在网上的某处看到,构buildPaintEventArgs的速度很慢,而且不是在开玩笑。 当我放弃这个时,许多闪烁就消失了。 跳过OnPaint / Invalidate()并且自己画一下。 设置窗体上的所有“双缓冲”选项仍然留下一些必须修复的闪烁。 (我发现有冲突的文档说“设置它们在控件上”和“设置它们在窗体上”。井控件没有.SetStyle()方法。)我没有testing没有他们,所以他们可能是做一些事情( this是表格): this.SetStyle(ControlStyles.UserPaint, true); this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true); this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); 所以代码的主力看起来像(面板控制): void PaintPlayField() { Bitmap bufl = new Bitmap(pf.Width, pf.Height); using (Graphics g = Graphics.FromImage(bufl)) […]

我如何测量C中的时间间隔?

我想用C来衡量时间,而且我正在经历一个艰难的时期,我想要的就是这样的事情: 启动一个计时器 运行一个方法 停止计时器 报告所花费的时间(至less微精度) 任何帮助,将不胜感激。 (我使用mingw在windows中编译)

ASP.NET MVC – 如何在login页面显示未经授权的错误?

在我的ASP.NET MVC应用程序中,我有大多数控制器装饰 [Authorize(Roles="SomeGroup")] 当用户没有权限访问某些东西时,他们被发送到“〜/ Login”,这是我的账户控制器上的login操作。 我怎样才能确定一个用户已经到达login页面,因为没有被授权,以便我可以显示一个适当的错误?

高效的整数比较function

compare函数是一个函数,它接受两个参数a和b并返回一个描述其顺序的整数。 如果a小于b ,结果是一些负整数。 如果a大于b ,结果是一些正整数。 否则, a和b相等,结果为零。 这个函数经常被用来参数化从标准库中sorting和searchalgorithm。 实现字符的comparefunction非常简单, 你简单地减去参数: int compare_char(char a, char b) { return a – b; } 这是有效的,因为两个字符之间的差异通常被假定为适合一个整数。 (注意,这个假设对于sizeof(char) == sizeof(int) )的系统来说并不适用。 这个技巧不能用来比较整数,因为两个整数之间的差别通常不适合整数。 例如, INT_MAX – (-1) = INT_MIN表明INT_MAX小于-1 (从技术上说,溢出会导致未定义的行为,但假设模运算)。 那么我们怎样才能有效地实现比较函数的整数? 这是我第一次尝试: int compare_int(int a, int b) { int temp; int result; __asm__ __volatile__ ( "cmp %3, %2 \n\t" "mov $0, […]

使用Asp.Net身份数据库第一种方法

我需要整合Asp.Net最新的MVC版本与一个现有的数据库,其中有一个额外的列String Address表dbo.AspNetUsers 我需要创build一个具有属性Address的实例ApplicationUser 。 任何想法如何做到这一点?

Parallel.ForEach与Task.Run和Task.WhenAll

使用Parallel.ForEach或Task.Run()asynchronous启动一组任务之间有什么区别? 版本1: List<string> strings = new List<string> { "s1", "s2", "s3" }; Parallel.ForEach(strings, s => { DoSomething(s); }); 版本2: List<string> strings = new List<string> { "s1", "s2", "s3" }; List<Task> Tasks = new List<Task>(); foreach (var s in strings) { Tasks.Add(Task.Run(() => DoSomething(s))); } await Task.WhenAll(Tasks);