这似乎是一个非常基本的问题,但我很想知道答案.我正在使用Subversion(SVN)进行源代码控制,我一直在检查所有文件,但客户端要求我在SVN中创建一个规则,以避免检入bin和obj文件夹.
我为什么不检查bin和obj文件夹?
客户端还要求我将解决方案文件保留在存储库文件夹之外.这是为什么?
几年前,我在学校完成了一项任务,在那里我必须并行化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) 由于我不知道我的问题是如何被调用的,我不能保证,没有人最近或根本没有问过同样的问题.
我注意到,但是有很多线程具有相似的标题,但它们似乎与我的问题无关.
我有一个自定义列表类,它实现了泛型.
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) 
以上是我正在使用的图像.我想要实现的是从图像中删除边框的红色部分.如何在Windows Phone中以编程方式实现此目的?我找到了WriteableBitmapExtensions.Crop()方法,但我对参数感到困惑(如何找到图像的x,y位置,以及大小和宽度?)
我面临的另一个问题是:我将获得具有不同大小边框的图像,因此我无法对x或y值进行硬编码.
任何人都可以建议解决方案,或指导我解决问题?
我曾尝试为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) 我很难从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)
非常非常难看
假设场景不允许实现不可变类型.根据这个假设,我想了解如何正确设计一个在消费后变成不可变的类型的意见/例子.
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) 我得到这个异常:
发生 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。
为什么我会得到这个异常?我该如何解决这个问题?
预先感谢您的每一个帮助!
我遇到了一些奇怪的事情,我不确定它是否是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而没有成功......
我已经编写了一个视频转换批处理,用户只需将视频从任何磁盘或分区拖放到批处理中,之后转换后的视频将保存在特定磁盘上的特定位置.
代码看起来像这样
@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"(两个名字都包围引号)
如何根据以下条件删除字典中的指定键?
foreach (var kvp in dict)
{
if (kvp.Key.Contains('/'))
{
//delete the key
}
}
Run Code Online (Sandbox Code Playgroud) 假设我有以下代码:
[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) 这是一行:
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# ×11
asp.net ×1
batch-file ×1
bitmap ×1
covariance ×1
datetime ×1
enum-flags ×1
generics ×1
getter ×1
graphics ×1
idictionary ×1
image ×1
immutability ×1
math ×1
primes ×1
svn ×1
windows ×1