小编And*_*son的帖子

TortoiseXXX:了解在特定开发项目中使用的SCM软件

我在我的系统上安装了TortoiseSVN,TortoiseGit和TortoiseHg.正如所料,但不幸的是,这些工具使用相同的图标来指示特定文件夹的版本控制状态.因此,当我在Windows资源管理器中打开我的软件项目文件夹时,我无法立即看到与特定解决方案/项目一起使用的SCM软件:

TortoiseXXX图标

我当然可以检查是否存在.svn,.git和.hg子文件夹,但是如果在主文件夹图标上指示SCM或将鼠标指针悬停在文件夹上时作为工具提示会更有效.

有谁知道是否存在提供此类功能的shell扩展?

tortoisesvn tortoisehg tortoisegit

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

.NET Portable库缺少BitConverter.DoubleToInt64Bits,替换速度很慢

我正在用C#开发一个可移植的类库,我希望将其转换double为a long.这个问题最直接的解决方案是使用该BitConverter.DoubleToInt64Bits方法,但不幸的是,这个方法在.NET类库的可移植库子集中不可用.

作为替代方案,我提出了以下"双通"位转换:

var result = BitConverter.ToInt64(BitConverter.GetBytes(x), 0);
Run Code Online (Sandbox Code Playgroud)

我的测试表明,这个表达式始终产生与之相同的结果DoubleToInt64Bits.然而,我的基准测试也表明,这种替代配方约4慢倍DoubleToInt64Bits时,在一个完整的.NET Framework应用程序来实现.

仅使用可移植库子集,是否可以实现替换DoubleToInt64Bits它比上面的公式更快?

c# performance bitconverter

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

在Caliburn.Micro约定TextBox中自定义字符串格式

我有一个通过Caliburn.Micro命名约定TextBox绑定到视图模型编号属性的WPF .我希望能够自定义字符串格式,同时保留Caliburn.Micro已设置的约定绑定.我该怎么办?DistanceTextBox

从我的视图模型:

public double Distance
{
    get { return _distance; }
    set
    {
        _distance = value;
        NotifyOfPropertyChange(() => Distance);
    }
}
Run Code Online (Sandbox Code Playgroud)

从我的观点来看:

<TextBox x:Name="Distance"/>
Run Code Online (Sandbox Code Playgroud)

Distance非零时,我想用固定的小数组显示数字,当Distance为零时,我希望文本框为空.

使用显式绑定我可以将TextBox.Text属性绑定到Distance,然后我可以StringFormat同时设置:

<TextBox x:Name="Distance" Text="{Binding Distance, StringFormat=0.000;;#}"/>
Run Code Online (Sandbox Code Playgroud)

但是,显式Text绑定会使Caliburn.Micro命名约定绑定短路.是否可以自定义字符串格式而无需同时设置TextBox.Text属性的绑定路径,这样我就可以完全依赖Caliburn.Micro来处理Distance-to- TextBoxbinding?

c# wpf binding mvvm caliburn.micro

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

Microsoft Solver Foundation位置分散目标

我正在尝试使用微软解算器基础,这样我就可以从一组位置中选择3个最分散的位置.我为我的模型添加了两个目标,一个确保选择3个位置,另一个确保它们是3个最分散的位置.

static void Main(string[] args)
    {
        Location candidate1 = new Location(0, 43.432, -79.432);
        Location candidate2 = new Location(1, 43.0, -79.0);
        Location candidate3 = new Location(2, 23.0, 29.0);
        Location candidate4 = new Location(3, 43.0, -79.0);
        Location candidate5 = new Location(4, 43.0, -79.0);
        Location[] candidates = {candidate1, candidate2, candidate3, candidate4, candidate5};
        SolverContext solver = new SolverContext();
        Model model = solver.CreateModel();
        model.Name = "LocationModel";
        Set items = new Set(Domain.Any, "candidates");
        Decision take = new Decision(Domain.Boolean, "candidate", items);
        model.AddDecision(take);
        Parameter locations = new Parameter(Domain.RealNonnegative, …
Run Code Online (Sandbox Code Playgroud)

c# optimization ms-solver-foundation

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

PCL Reflection使用BindingFlags获取属性

我有下面的代码.

    public static IEnumerable<PropertyInfo> GetAllPublicInstanceDeclaredOnlyProperties(this Type type)
    {
        var result =
            from PropertyInfo pi in type.GetProperties(BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly)
            select pi;

        return result;
    }
Run Code Online (Sandbox Code Playgroud)

我试图将其转换为PCL库,但我无法弄明白.我试过了

type.GetTypeInfo().DeclaredProperties.Where(x => x.BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly)
Run Code Online (Sandbox Code Playgroud)

但是BindingFlags不存在.

我错过了什么?

.net c# reflection portable-class-library

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

正确识别具有相同基础价值的枚举

假设我有这个enum定义,其中几个成员具有相同的基础值:

enum Number
{
  One = 1,
  Eins = 1,
  Uno = 1
}
Run Code Online (Sandbox Code Playgroud)

根据MSDN文档:

如果多个枚举成员具有相同的基础值,并且您尝试根据其基础值检索枚举成员名称的字符串表示形式,则您的代码不应对该方法将返回的名称做出任何假设.

所以,例如,

var number = Number.One;
Console.WriteLine(number);
Run Code Online (Sandbox Code Playgroud)

给我以下输出:

一型

打印所有枚举成员,

Console.WriteLine($"{Number.One} {Number.Eins} {Number.Uno}");
Run Code Online (Sandbox Code Playgroud)

产生以下输出:

Eins Eins Eins

但是,取nameof每个成员,

Console.WriteLine($"{nameof(Number.One)} {nameof(Number.Eins)} {nameof(Number.Uno)}");
Run Code Online (Sandbox Code Playgroud)

给出以下结果:

一个Eins Uno

显然,enum成员可分离的.我可以利用这种分离,即有什么方法可以将特定Number成员分配给变量,并且每当访问变量时都会返回相同的成员吗?

c# enums

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

如何从XobotOS构建/使用锐化?

我克隆了git://github.com/xamarin/XobotOS.git并按照https://github.com/xamarin/XobotOS/blob/master/sharpen/README的说明进行操作

显然,mono的团队有预建版本,其自述说明是相关的,因为添加提供的站点目录不会在eclipse中的"安装新软件"对话框中添加锐化插件.我想它必须建成.

那么如何构建这个eclipse插件呢?它似乎没有任何ant/maven文件.

c# java android xobotos sharpen-tool

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

如何使用WinRT Caliburn.Micro将参数传递给导航视图模型?

我正在使用WinRT Caliburn.Micro开发Windows应用商店应用游戏,我依赖于导航框架.

我有游戏设置(定义玩家)和实际游戏的视图模型.当从设置导航到游戏时,我想将玩家的集合传递给游戏视图模型.我怎样才能做到这一点?

原理上,我的视图模型目前看起来像这样:

public class SetupGameViewModel : NavigationViewModelBase
{
    public SetupGameViewModel(INavigationService ns) : base(ns) { }

    public IObservableCollection<Player> Players { get; set; }

    public void StartGame()
    {
        // This is as far as I've got...
        base.NavigationService.NavigateToViewModel<GameViewModel>();

        // How can I pass the Players collection from here to the GameViewModel?
    }
}

public class GameViewModel : NavigationViewModelBase
{
    public GameViewModel(INavigationService ns) : base(ns) { }

    public ScoreBoardViewModel ScoreBoard { get; private set; }

    public void InitializeScoreBoard(IEnumerable<Player> players)
    { …
Run Code Online (Sandbox Code Playgroud)

c# caliburn.micro windows-runtime windows-store-apps

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

通用方法重载和优先级

我有两个重载的泛型方法:

T Foo<T>(T t) { Console.WriteLine("T"); return t; }

T Foo<T>(int i) { Console.WriteLine("int"); return default(T); }
Run Code Online (Sandbox Code Playgroud)

当我尝试Foo在我的电脑上调用如下:

Foo(5);
Run Code Online (Sandbox Code Playgroud)

我没有编译器错误或警告,并调用带泛型参数的第一个方法(即输出T).在所有C#化身和所有平台上都会出现这种情况吗?在那种情况下,为什么?

另一方面,如果我在泛型调用中明确指定类型:

Foo<int>(5);
Run Code Online (Sandbox Code Playgroud)

调用带参数的第二个方法int,即输出现在int.为什么?

我在两个方法重载中使用不同的参数名称,因此以下调用的输出是预期的:

Foo<int>(t: 5);       // output 'T'
Foo<int>(i: 5);       // output 'int'
Run Code Online (Sandbox Code Playgroud)

如果我调用第一种方法,我甚至可以省略类型规范:

Foo(t: 5);            // output 'T'
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试编译这个:

Foo(i: 5);
Run Code Online (Sandbox Code Playgroud)

我得到一个错误方法'Foo(int)'的类型参数不能从用法中推断出来.尝试显式指定类型参数. 为什么编译器不能处理这个调用?

注意这些测试是在Windows 8 x64系统上使用LinqPad执行的(如果与结果相关...)

c# generics overload-resolution

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

在iOS上调用TcpListener.Start()时,如何避免Access Denied错误?

在我的iOS应用程序中,我试图调用一个TcpListener实例.我定义并启动监听器如下:

var listener = new TcpListener(IPAddress.Any, 104);
listener.Start();
Run Code Online (Sandbox Code Playgroud)

但是,当我运行此代码(iOS模拟器,iPhone,调试模式)时,我得到以下异常:

System.Net.Sockets.SocketException:在/Developer/MonoTouch/Source/mono/mcs/class/System/System.Net中的System.Net.Sockets.Socket.Bind(System.Net.EndPoint local_end)[0x00051]拒绝访问/Sveloper/MonoTouch/Source/mono/mcs/class/System/System.Net.Sockets/TcpListener.cs中的System.SNet.Sockets.TcpListener.Start(Int32 backlog)[0x00022]中的.Sockets/Socket.cs:1111 :259 at /Developer/MonoTouch/Source/mono/mcs/class/System/System.Net.Sockets/TcpListener.cs:239 at
...的System.Net.Sockets.TcpListener.Start()[0x00000]

有什么我可以做的,以避免访问被拒绝错误,或者这是Xamarin.iOS上的Mono运行时的内置限制?

c# sockets mono ios

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