小编Gar*_*ong的帖子

在try catch块中为IDisposable使用块有什么问题吗?


在MSDN建议把的实现类的一个实例化IDisposable到一个using块.或者,如果它正在一个try-catch块中实例化,那么Dispose在Finally.

using在try-catch块中使用块是否有任何问题?

try
{
    using (Foo bar = new Foo())
    {
       bar.doStuff();
    }
}
catch (Exception e)
{
    //vomit e
}
Run Code Online (Sandbox Code Playgroud)

当然我可以打电话给Dispose一个Finally街区,但我是编程的新手,我只是想知道做这样的事情是否实际上是可以接受的,或者是否有人会打我的后脑并对我大喊大叫我是Doing-It-Wrong™.

或者更确切地说,我更有兴趣知道为什么会出现这种错误.

.net c#

13
推荐指数
2
解决办法
572
查看次数

使用事件有多少性能开销?

我对编程很新,而且我对OOP的知识有限,我决定使用事件在我的课程之间进行交流.当然,这将导致相当多的事件.

我想知道使用事件是否还有额外的开销?我假设除非事件被执行(即,类中有一个监听器根据被触发的事件执行一个函数),那么实际上应该没有太大的影响.但是我并不熟悉C#中的事件,并且想要确认是否仅仅因为触发事件而产生了大量的额外开销?

c# oop

9
推荐指数
3
解决办法
9321
查看次数

AS3 - Bitmap类可以调度鼠标事件吗?

我正在尝试学习AS3并遇到了一个小问题.

我有一个Bitmap类,我添加了一个MouseEvent.CLICK监听器,但似乎没有调度该事件.

我使用Flashdevelop编写AS3代码和Flex编译.

我有两节课,Enemy.as和Player.as

该Player.as如下所示:

package Player 
{
import flash.display.Sprite;
import flash.events.MouseEvent;

[Embed(source="../../assets/leek.swf", symbol="Leek")]

public class Player extends Sprite 
{
    public function Player() 
    {
        trace("Player constructed");
        addEventListener(MouseEvent.CLICK, handleClick);
    }

    private function handleClick(e:MouseEvent):void 
    {
        trace("Clicked Player");
    }

}

}
Run Code Online (Sandbox Code Playgroud)

该Enemy.as如下所示:

package enemies 
{

import flash.display.Bitmap;
import flash.events.MouseEvent

[Embed(source="../../assets/gardengnome.png")]

public class Enemy extends Bitmap 
{
    public function Enemy() 
    {
        trace("enemy constructed");
        addEventListener(MouseEvent.CLICK, handleClick);
    }

    private function handleClick(e:MouseEvent):void 
    {
        trace("Clicked Enemy");
    }

}

} …
Run Code Online (Sandbox Code Playgroud)

apache-flex flashdevelop actionscript-3

3
推荐指数
1
解决办法
1210
查看次数

C++如何一次限制输入一个char?

我有一个程序要求用户多次输入输入,并将输入存储在不同的char变量中,然后对这些变量执行操作.

我的问题是我想限制输入一次为一个变量工作.例如:

char a = 'a', b = 'b', c = 'c';
cout << "Enter a ";
cin  >> a; 
cout << "\nEnter b ";
cin  >> b;
cout << "\nEnter c ";
cin  >> c;

cout << "Entered chars were " << a << ", " << b << ", " << c;
Run Code Online (Sandbox Code Playgroud)

运行这个,如果用户输入tyu(包括字母之间的空格)将使程序输入t变量a,y输入变量b,u输入变量c.从本质上讲,它会有点"掉头"并自动为cin设置值,而不是要求用户为每个人执行此操作.

我想要的是检查用户为变量a输入的内容仅为1个字符.

我尝试过使用cin.good(),但在为cin >> a输入多个字符后它返回0; 我也尝试过使用cin.get(a); 然后检查cin.good().如果用户输入多个字符,这也会返回0.

有没有办法限制输入一次仅用于一个cin操作?

c++ input

2
推荐指数
1
解决办法
2万
查看次数

AS3 - 为什么将DisplayObject的alpha设置为0.7实际上会导致alpha设置为0.69921875?

在我的代码中的某一点,我将Sprite的alpha设置为0.7

square.alpha = 0.7;

稍后在我的代码中,我在条件语句中检查这个alpha.

if (square.alpha == 0.7) {//do stuff}

我一直在摸不着为什么直到我做了一次trace(square.alpha);而没有工作,而不是0.7我得到了0.69921875.

0.69921875对于我设置为alpha为0.7的精灵的每个实例,这个数字()是相同的.

我做了一些测试,它看起来像唯一值alpha只返回相同的值,我将它们设置为0,0.5和1.其他任何东西似乎总是返回一个非常接近我设定的数字,但不完全.比如0.2会给我0.19921875

为什么会这样?

我使用Flex编译代码,不确定这是否对此有任何影响.

apache-flex actionscript-3

2
推荐指数
1
解决办法
383
查看次数

List <T>构造函数(IEnumerable <T>)不接受从Array.CreateInstance(Type,Int32)创建的数组

我是编程和.net的新手,我很难理解为什么使用List<T>(IEnumerable<T>)构造函数接受使用创建的数组[],但不接受使用创建的数组Array.CreateInstance(Type, Int32).

这是有效的:

DirectoryInfo[] dirsArray = foo.GetDirectories();
List<DirectoryInfo> dirsList = new List<DirectoryInfo>(dirsArray);
Run Code Online (Sandbox Code Playgroud)

这不是:

 Array dirsArray = Array.CreateInstance(typeof(DirectoryInfo), 10); //assume we know 10 is the required length
 List<DirectoryInfo> dirsList = new List<DirectoryInfo>(dirsArray);
Run Code Online (Sandbox Code Playgroud)

以上给出了以下编译器错误:

Error   1   The best overloaded method match for 'System.Collections.Generic.List<System.IO.DirectoryInfo>.List(System.Collections.Generic.IEnumerable<System.IO.DirectoryInfo>)' has some invalid arguments

Error   2   Argument 1: cannot convert from 'System.Array' to 'System.Collections.Generic.IEnumerable<System.IO.DirectoryInfo>'
Run Code Online (Sandbox Code Playgroud)

但我知道List<T>(IEnumerable<T>)可以接受任何IEnumerable作为论据.我知道那System.Array是IEnumerable.不仅因为它在引用中,而且因为使用[]构造函数语法的第一个示例工作正常.

那么这里的问题是什么?是否Array.CreateInstance以某种方式设法创建一个数组,是不是IEnumerable?

.net c# arrays

2
推荐指数
1
解决办法
737
查看次数

标签 统计

c# ×3

.net ×2

actionscript-3 ×2

apache-flex ×2

arrays ×1

c++ ×1

flashdevelop ×1

input ×1

oop ×1