小编use*_*322的帖子

为什么在C中写入1000,000,000作为1000*1000*1000?

在Apple创建的代码中,有这一行:

CMTimeMakeWithSeconds( newDurationSeconds, 1000*1000*1000 )
Run Code Online (Sandbox Code Playgroud)

没有任何理由来表达1,000,000,0001000*1000*1000

为什么不1000^3呢?

c integer objective-c literals

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

如何在Visual Studio 15中禁用"在此处运行执行"?

如何在将光标移动到代码左侧时禁用"运行到此处"按钮?当我在选择代码时意外点击它时,真的很烦人.

visual-studio visual-studio-2017

87
推荐指数
2
解决办法
4025
查看次数

是否可以在枚举中保存类型(使用"typeof()")?

所以我在XNA,C#4.0中创建一个游戏,我需要管理很多PowerUps(在代码中都继承自"PowerUp"类),并处理PowerUps的后端管理我目前有一个枚举,PowerupEffectType,具有PowerUp的每个子类的值.最终在代码中我需要进行从PowerupEffectType到Powerup类型的转换(Type通常用类实现typeof([class name])).

由于这是一个组项目,我想尽可能将PowerupEffectType的每个值与其对应的类Type结合,即:不仅仅是期望我的其他程序员使用switch语句手动进行转换,并确保以后添加/扩展在尽可能少的地方进行尽可能少的变更.我有几个选项,到目前为止我发现的最好的是创建枚举伪方法,将所有内容压缩到一个switch语句(我想要的99%),这要归功于我在这里找到的一些提示:http ://msdn.microsoft.com/en-us/library/bb383974.aspx

但我试图更进一步 - 我可以保存Type一个enum吗?我知道你可以将枚举保存为特定类型(链接:http://msdn.microsoft.com/en-us/library/cc138362.aspx),但Type不是其中之一.当前选择是byte,sbyte,short,ushort,int,uint,long和ulong.是否有任何可行的方法将转换a保存Type到上述任何数据类型并返回?

为了清楚起见,这就是我希望我能做到的,我正在寻找一种方法:

// (Assuming 'LightningPowerup', 'FirePowerup', and 'WaterPowerup' are
// all declared classes that inherit from a single base class)

public enum PowerupEffectType
{
    LIGHTNING = typeof(LightningPowerup),
    FIRE = typeof(FirePowerup),
    WATER = typeof(WaterPowerup)
}
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点,或者我只是过度复杂解决了已经99%完成的问题?

提前致谢!

c# enums types type-conversion

61
推荐指数
4
解决办法
5699
查看次数

怎样才能解释+ =和 - =运算符?

正是(引擎盖下)做了什么+=-=运营商呢?

或者它们是隐含的,因为它们是按类型定义的?

我已广泛使用它们,这是语法的一个非常简单的特性,但我从未想过它的工作原理的深度.

关于这个问题带来了什么

我可以像这样连接一个字符串值:

var myString = "hello ";
myString += "world";
Run Code Online (Sandbox Code Playgroud)

一切都很好.但为什么这不适用于收藏?

var myCol = new List<string>();
myCol += "hi";
Run Code Online (Sandbox Code Playgroud)

你可能会说'你正试图附加一个不同的类型,你不能将一个字符串附加到一个非字符串的类型'.但以下情况也不起作用:

var myCol = new List<string>();
myCol += new List<string>() { "hi" };
Run Code Online (Sandbox Code Playgroud)

好吧,也许它不适用于集合,但以下不是一种(某种)事件处理程序集合?

myButton.Click += myButton_Click;
Run Code Online (Sandbox Code Playgroud)

我显然缺乏对这些运算符如何工作的深入理解.

请注意:myCol在实际项目中,我不是试图以这种方式构建集合.我只是对这个运营商的运作感到好奇,这是假设的.

c# operators

42
推荐指数
3
解决办法
6044
查看次数

如何以编程方式在我的项目中包含一个文件?

背景

我正在制作一个帮助应用程序来重新格式化一些代码文件并创建新的代码文件,这些代码文件将被添加到我的其他项目中,所以我可以立即使用新代码,但是我在添加新代码文件时遇到了麻烦自动进入我的项目.顺便说一下,它在c#中,帮助应用程序是WinForms.

尝试失败

这个问题唯一的答案有两种方法,但我不能让它们中的任何一种起作用.第一个我找不到Microsoft.Build要引用的程序集,而在另一个中显然没有足够的参数用于命令行.

如何在不使用第三方应用程序的情况下以编程方式将文件包含到项目中?

基本上,我正在寻找相当于这个:

......但是使用代码完成了.

要求

这些是我认为解决方案应该提供的功能:

  • 选择包含我们要添加文件的项目解决方案
  • 选择要添加文件的项目
  • 选择项目中的目录
  • 当然,我们正在添加的文件

进展

通过用户@ psubsee2003的帮助,我能够在我的计算机上的Microsoft.Build.dll文件C:\Windows\Microsoft.NET\Framework\v4.0.30319夹中找到该文件,并通过将我的项目的目标框架更改为版本4 完整配置文件而不是默认的客户端配置文件来成功导入它.

我发现了如何使用该AddItem方法:

var p = new Microsoft.Build.Evaluation.Project(@"C:\projects\MyProject.csproj");
p.AddItem("Compile", @"C:\folder\file.cs");
p.Save();
Run Code Online (Sandbox Code Playgroud)

该文件将出现在项目的根文件夹中,除非项目已经有一个文件夹folder,在这种情况下文件将放在那里.因此,基本上该文件将被放置在原始文件的路径中找到的最深的文件夹链中,该路径将朝向根文件夹.

c# projects-and-solutions visual-studio-2010 visual-studio winforms

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

如何将图像像素的值作为RGB读入2d数组?

我正在为我的方形平台平台游戏制作一个二维地图编辑器,当我意识到我真的可以使用一个图像编辑器,它能够重新绘制相邻的像素等等,所以我想我应该尝试通过应用程序读取绘制的水平然后将其转换为轻量级格式.

我不确定是否使用位图格式是必须的,但我猜,读取特定像素比使用PNG更容易.

所以我的目标是打开一个图像,遍历每个像素,寻找那些适合我的图块方案的颜色,并将相应的图块放入块数组中.

注意:我已经有了轻量级格式,所以我只需要将像素值读入数组.


解决方案:我的草图如下所示:

Bitmap myBitmap = new Bitmap(@"input.png");            
            for (int x = 0; x < myBitmap.Width; x++)
            {
                for (int y = 0; y < myBitmap.Height; y++)
                {                    
                    Color pixelColor = myBitmap.GetPixel(x, y);
                    // things we do with pixelColor
                }
            }
Run Code Online (Sandbox Code Playgroud)


例2:

Bitmap myBitmap = new Bitmap(@"input.png");

            for (int x = 0; x < myBitmap.Width; x++)
            {
                for (int y = 0; y < myBitmap.Height; y++)
                {
                    // Get the color of a pixel within myBitmap.
                    Color …
Run Code Online (Sandbox Code Playgroud)

c# rgb image bitmap

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

如果在第一次"返回"之后有一个"else",那么性能是否重要?

我现在已经看到了两种不同的方法来制作布尔返回方法:

bool Case1()
{
    if (A)
        return true;
    else
        return false;
}
bool Case2()
{
    if (A)
        return true;
    return false;
}
Run Code Online (Sandbox Code Playgroud)

哪一个更快?不写else只是为了保存一条线,使它更清晰,还是可以忽略不计的性能增益?

.net c# performance if-statement return

19
推荐指数
3
解决办法
1270
查看次数

如何对也在Excel中打开的文件执行File.ReadAllLines?

如何在string[]不获取IO异常的情况下读取也在Excel中打开的文本文件的所有行?

有一个问题可能是答案的一部分,虽然我不知道如何使用其中的内容: 如何使用.net StreamReader打开已打开的文件?

c# io

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

如何从foreach循环中修改foreach迭代变量?

当我尝试这样做时......

Item[,] array = new Item[w, h];  // Two dimensional array of class Item, 
                                 //   w, h are unknown at compile time.
foreach(var item in array)
{
    item = new Item();
}
Run Code Online (Sandbox Code Playgroud)

......我得到Cannot assign to 'item' because it is a 'foreach iteration variable'.

不过,我还想那样做.

我们的想法是将默认Item类值分配给现有项目.

c# iteration foreach variable-assignment

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

如何在Windows资源管理器中从Visual Studio打开项目文件夹?

我想从Visual Studio中轻松访问我的项目文件夹.如何在Windows资源管理器中打开其文件夹?

visual-studio-2010 visual-studio

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