小编Nol*_*nar的帖子

为什么我不能在SVN中检查bin和obj文件夹

这似乎是一个非常基本的问题,但我很想知道答案.我正在使用Subversion(SVN)进行源代码控制,我一直在检查所有文件,但客户端要求我在SVN中创建一个规则,以避免检入binobj文件夹.
我为什么不检查binobj文件夹?

客户端还要求我将解决方案文件保留在存储库文件夹之外.这是为什么?

svn version-control

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

为什么简单的get语句如此之慢?

几年前,我在学校完成了一项任务,在那里我必须并行化Raytracer.
这是一个简单的任务,我真的很喜欢它的工作.

今天,我觉得要分析光线跟踪器,看看我是否可以让它更快地运行(没有完全改造代码).在分析期间,我发现了一些有趣的东西:

    // Sphere.Intersect
    public bool Intersect(Ray ray, Intersection hit)
    {
        double a = ray.Dir.x * ray.Dir.x +
                   ray.Dir.y * ray.Dir.y +
                   ray.Dir.z * ray.Dir.z;
        double b = 2 * (ray.Dir.x * (ray.Pos.x - Center.x) +
                        ray.Dir.y * (ray.Pos.y - Center.y) +
                        ray.Dir.z * (ray.Pos.z - Center.z));
        double c = (ray.Pos.x - Center.x) * (ray.Pos.x - Center.x) +
                   (ray.Pos.y - Center.y) * (ray.Pos.y - Center.y) +
                   (ray.Pos.z - Center.z) * (ray.Pos.z - Center.z) - Radius * Radius;

        // more …
Run Code Online (Sandbox Code Playgroud)

c# getter

11
推荐指数
1
解决办法
474
查看次数

关于泛型和继承(原谅我的坏名)

由于我不知道我的问题是如何被调用的,我不能保证,没有人最近或根本没有问过同样的问题.

我注意到,但是有很多线程具有相似的标题,但它们似乎与我的问题无关.

我有一个自定义列表类,它实现了泛型.

class MyList<T>
{
    public void add(T item) // adds an item to the list
    { /* code */ }
    public void add(MyList<T> list) // attaches an existing list to the end of the current one
    { /* code */ }
}
Run Code Online (Sandbox Code Playgroud)

我也有课程:

class Apple : Fruit
Run Code Online (Sandbox Code Playgroud)

class Banana : Fruit
Run Code Online (Sandbox Code Playgroud)

现在,相关代码:

MyList<Fruit> fruitList = new MyList<Fruit>();
// fill fruitList

fruitList.add(new Apple()); // works, of course
fruitList.add(new Banana()); // works as well, of course

MyList<Apple> appleList = …
Run Code Online (Sandbox Code Playgroud)

c# generics covariance

10
推荐指数
1
解决办法
293
查看次数

根据Windows手机中的颜色裁剪图像边框

在此输入图像描述

以上是我正在使用的图像.我想要实现的是从图像中删除边框的红色部分.如何在Windows Phone中以编程方式实现此目的?我找到了WriteableBitmapExtensions.Crop()方法,但我对参数感到困惑(如何找到图像的x,y位置,以及大小和宽度?)

我面临的另一个问题是:我将获得具有不同大小边框的图像,因此我无法对x或y值进行硬编码.
任何人都可以建议解决方案,或指导我解决问题?

c# image windows-phone-7 windows-phone-8 writablebitmap

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

费马素性测试

我曾尝试为Fermat素性测试编写代码,但显然失败了.所以,如果我深知:如果p是素数,那么((a^p)-a)%p=0在那里p%a!=0.我的代码似乎没问题,因此我很可能误解了基础知识.我在这里错过了什么?

private bool IsPrime(int candidate)
    {
        //checking if candidate = 0 || 1 || 2
        int a = candidate + 1; //candidate can't be divisor of candidate+1
        if ((Math.Pow(a, candidate) - a) % candidate == 0) return true;
        return false;
    }
Run Code Online (Sandbox Code Playgroud)

c# math primes

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

删除前导零表单月份C#

我很难从miscrosoft网站上发现的日期中删除前导零.

DateTime date1 = new DateTime(2008, 8, 18);
Console.WriteLine(date1.ToString("(M) MMM, MMMM", 
                  CultureInfo.CreateSpecificCulture("en-US")));
// Displays (8) Aug, August
Run Code Online (Sandbox Code Playgroud)

完全不适用于此.

这是我的代码:

string date = '2013-04-01'
DateTime billrunDate = Convert.ToDateTime(date);
string test = billrunDate.ToString("M");
Run Code Online (Sandbox Code Playgroud)

现在测试了 01 April

我只需要它4在字符串或int idc谢谢!

编辑如果我这样做:

billrunDate.ToString("(M)");
Run Code Online (Sandbox Code Playgroud)

我明白了(4),但我不需要()

编辑2:这很有效

string test = billrunDate.ToString(" M ");
string testTwo = test.Trim();
Run Code Online (Sandbox Code Playgroud)

非常非常难看

c# datetime

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

设计一个可变类,在它被消耗后变为不可变类

假设场景不允许实现不可变类型.根据这个假设,我想了解如何正确设计一个在消费后变成不可变的类型的意见/例子.

public class ObjectAConfig {

  private int _valueB;
  private string _valueA;
  internal bool Consumed { get; set; }

  public int ValueB {
    get { return _valueB; }
    set
    {
      if (Consumed) throw new InvalidOperationException();
      _valueB = value;
    }
  }

  public string ValueA {
    get { return _valueA; }
    set
    {
      if (Consumed) throw new InvalidOperationException();
      _valueA = value;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

ObjectA消耗ObjectAConfig:

public ObjectA {

  public ObjectA(ObjectAConfig config) {

    _config = config;
    _config.Consumed = true;
  } …
Run Code Online (Sandbox Code Playgroud)

c# design-patterns immutability

5
推荐指数
1
解决办法
153
查看次数

System.ArgumentException:“参数无效。” 实例化一个新的位图

我得到这个异常:

发生 System.ArgumentException
消息 =“参数无效。”
Source =“System.Drawing”
StackTrace:
在System.Drawing.Bitmap ..ctor(Int32宽度,Int32高度,PixelFormat格式)
在System.Drawing.Bitmap..ctor(Int32宽度,Int32高度)...

当我以这种方式实例化一个新的位图时:

Bitmap resImage = new Bitmap(width, height);
resImage.SetResolution(600, 600);
Run Code Online (Sandbox Code Playgroud)

其中宽度和高度是以像素为单位转换为用户设置的尺寸(以厘米为单位)的 600 dpi 的尺寸,在本例中为 28x41 厘米(A3 格式图像),对应于 6614x9685 像素。之后,我将从位图创建一个图形对象,并使用 GDI+ 的方法在其上绘图。我需要高分辨率图像,因为它将被添加到 pdf 文档中,并且我想要高质量的结果。

仅当从 Web 应用程序调用该方法时,才会出现此异常,该方法引用了编写所有打印逻辑的 dll。

为什么我会得到这个异常?我该如何解决这个问题?

预先感谢您的每一个帮助!

c# asp.net graphics bitmap

5
推荐指数
0
解决办法
9106
查看次数

Visual Studio Bug?

我遇到了一些奇怪的事情,我不确定它是否是Visual Studio中的一个错误,或者我的无知可能是在欺骗我.

我有两个私有类变量:

class MyClass
{
    private MyList<A> aList;
    private MyList<B> bList;
    [...]
Run Code Online (Sandbox Code Playgroud)

在代码的某处,我第一次使用这些变量.

    public void MyMethod()
    {
        object[] generatorOutput = Generator.Generate(args);
        aList = (MyList<A>)generatorOutput[0];
        bList = (MyList<B>)generatorOutput[1];
        [...]
Run Code Online (Sandbox Code Playgroud)

然而Visual Studio告诉我,bList是错误的:

Cannot use local variable 'bList' before it is declared.
The declaration of the local variable hides the Field 'MyNameSpace.MyClass.bList'.
Run Code Online (Sandbox Code Playgroud)

我真的不明白Visual Studio的含义.我希望bList是本地的,它应该隐藏任何东西.

如果它有帮助:bList最初被称为cList,并且MyList<C>在我决定之前,这是一个MyList<B>绰绰有余.只有在重命名变量并更改其类型后才会出现错误消息.顺便说一下,generatorOutput始终被转换为正确的类型.

那么,这是一个错误,还是我错过了一些明显的东西?我已经尝试编译代码,重写行甚至重启Visual Studio而没有成功......

c# visual-studio-2010

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

如何处理批处理文件中%*的不一致文件名格式

我已经编写了一个视频转换批处理,用户只需将视频从任何磁盘或分区拖放到批处理中,之后转换后的视频将保存在特定磁盘上的特定位置.

代码看起来像这样

@echo off
%~d0
cd %~p0
for %%f in (%*) do ...
pause
Run Code Online (Sandbox Code Playgroud)

实际问题在于(%*).
当我的文件名称中有一个结束圆括号时,批处理将不起作用.为了解决这个问题,我使用了("%*"),但这不适用于名称中包含空格或多个文件的文件.
我也试过,(%~*)但那是无效的.

经过一番研究,我发现,当我滴在批与名称的多个文件file(test)file test,%*解析

file(test) "file test"
Run Code Online (Sandbox Code Playgroud)

这意味着文件名可能带引号,或者不是......

我的问题是:我该如何处理?
理想情况下,我想%*解决"file(test)" "file test"(两个名字都包围引号)

windows drag-and-drop batch-file

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

删除字典中的键

如何根据以下条件删除字典中的指定键?

foreach (var kvp in dict)
            {
                if (kvp.Key.Contains('/'))
                {
                    //delete the key
                }
            }
Run Code Online (Sandbox Code Playgroud)

c# idictionary

0
推荐指数
1
解决办法
139
查看次数

定义枚举标志值的惯例是什么?

假设我有以下代码:

[Flags]
enum MyFlags
{
    None = 0,
    A = 1,
    B = 2,
    C = 4,
    D = 8,
    E = 16,
    // ...
}
Run Code Online (Sandbox Code Playgroud)

当标志量变得非常大时,这显然不是最佳的.并通过最佳,平均可读,不快速或节省内存.

对于组合标志,例如

AB = 3
Run Code Online (Sandbox Code Playgroud)

我们可以轻松使用

AB = A | B
Run Code Online (Sandbox Code Playgroud)

相反,它更具可读性.
并用于组合所有标志

All = A | B | C | ...
Run Code Online (Sandbox Code Playgroud)

它会更有利于使用

All = ~None
Run Code Online (Sandbox Code Playgroud)

相反,即使我们没有充分利用所有可用的32/64位.

但是常规价值呢?

之间

E = 16
E = 0b10000
E = 0x10
E = 1 << 4
Run Code Online (Sandbox Code Playgroud)

或其他我没有想到的方法,哪种方式最适合大量的旗帜?

或者换句话说,在C#中为标志设置值的(商定的)约定是什么?

让我们假设为了论证,值不会对齐,所以代码可能看起来像这样

None = 0,
Apple = 1,
Banana = …
Run Code Online (Sandbox Code Playgroud)

c# enum-flags

0
推荐指数
1
解决办法
249
查看次数

我怎样才能获得文件路径名的一部分?

这是一行:

string t = Path.GetDirectoryName(file1);
Run Code Online (Sandbox Code Playgroud)

结果是:

C:\\Users\\bout0_000\\AppData\\Local\\Extracting_Frames\\Extracting_Frames\\dat file\\converted.avi\\histogramValues.dat
Run Code Online (Sandbox Code Playgroud)

我希望它只包含:converted.avi.

PS:converted.avi不是文件名,而是路径名.我想得到路径的最后一部分是没有文件名的最后一个子目录.

c#

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