问题列表 - 第6063页

C#:如何在对象类型转换期间使用隐式强制转换操作符?

HI!

这是我的情况:我有一些值类型,它包含在具有适当隐式转换器的另一种类型中.如果我将包装类型转换为对象然后尝试获取原始值,我只能在两步转换中执行此操作.如果简化我的代码如下:

public enum MyEnum : int
    {
        First,
        Second
    }


    public class Test<T>
    {
        public Test(T val)
        {
            Value = val;
        }

        private T Value { get; set; }


        public static implicit operator T(Test<T> m)
        {
            return m.Value;
        }

        public static implicit operator Test<T>(T m)
        {
            var res = new Test<T>(m);
            return res;
        }
    }


    static void Main()
    {
        object res = new Test<MyEnum>(MyEnum.First);
        Console.WriteLine((MyEnum)(Test<MyEnum>)res);
        Console.WriteLine((MyEnum)res);
    }
Run Code Online (Sandbox Code Playgroud)

首先"Console.WriteLine"正常工作.第二个失败了.

有什么办法可以修改这个行为并让它在没有双重投射的情况下工作吗?

更新1

我必须使用object来进行值转换(在实际应用程序中我必须转换ComboBox.SelectedItem属性,我不想为ComboBox添加额外的属性,因为我必须在任何地方更改我的UI交互代码).

更新2

不允许与System.Object进行隐式转换.

更新3

更新了我的示例代码以反映整个问题.

c# enums casting

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

调试时,Visual Studio始终位于顶部

当我开始调试我们当前正在处理的项目时,程序窗口没有在窗口中给出正确的焦点,而是堆叠在Visual Studio窗口后面.我不认为我的任何团队成员计算机上都会出现此问题,因此看起来它在我的系统上是一个问题.

VS2008中有一个设置总是在顶部或类似的东西吗?我好像找不到一个......

知道是什么原因引起的吗?视觉工作室?程序代码?

我知道这是一个模糊的问题,但如果没有人认识到这个问题,我会更加细节.

编辑: 我正在使用Visual Studio 2008与ReSharper,GhostDoc和资源重构工具.

编辑: 我已经查看了我可以在VS中找到的每个选项,我找不到任何可以解释这种行为的东西.

编辑: 我在双显示器设置联想Thinkpad Tseries笔记本电脑上运行此功能.监视器通过扩展坞连接.监视器1通过DVI电缆连接,监视器2通过VGA电缆连接.

debugging resharper installation multiple-monitors visual-studio-2008

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

LinqToSql奇怪的行为

我有以下代码:


var tagToPosts = (from t2p in dataContext.TagToPosts
                                    join t in dataContext.Tags on t2p.TagId equals t.Id
                                    select new { t2p.Id, t.Name });
//IQueryable tag2postsToDelete;
foreach (Tag tag in tags)
{
    Debug.WriteLine(tag);
    tagToPosts = tagToPosts.Where(t => t.Name != tag.Name);
}
IQueryable tagToPostsToDelete = (from t2p in dataContext.TagToPosts
                                            join del in tagToPosts on t2p.Id equals del.Id
                                            select t2p);
dataContext.TagToPosts.DeleteAllOnSubmit(tagToPostsToDelete);
Run Code Online (Sandbox Code Playgroud)

where tagsList<Tag>- 构造函数创建的标签列表,因此它们没有id.我运行代码将一个刹车点放在Debug上,然后等待几个周期.然后我将WatchToPosts.ToList()放在Watch窗口中以便执行查询.在SQL事件探查器中,我可以看到以下查询:

exec sp_executesql N'SELECT [t0].[Id], [t1].[Name]
FROM [dbo].[tblTagToPost] AS [t0]
INNER JOIN [dbo].[tblTags] AS [t1] ON [t0].[TagId] = …
Run Code Online (Sandbox Code Playgroud)

c# linq lambda linq-to-sql

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

您如何将Scrum应用于Web开发的设计部分?

我开始学习Scrum,我有兴趣与我们的开发团队一起尝试.我对此有很多疑问......但我最大的心理障碍是在实际的图形设计中.

在我们当前的开发周期[waterfall-esque]中,我们的图形设计器根据松散的PRD布置包含所有图像的页面.如果我们要利用Scrum的方法,这种发展将如何发生?我认为我们习惯于看到全局并朝着它迈进......而不是在我们去的时候将视觉片段装配在一起,这就是我期望Scrum的图形设计政策.

是否至少闻所未闻的至少将所有功能都用线框架?或者更为明智的是 - 对于第一个冲刺 - 以这样的方式设计其功能,即我们可以添加其他冲刺的新功能吗?(即,当需要新功能时,请讨论"这适合当前的设计?")

agile scrum

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

这段代码在性能方面有什么问题?List.Contains,随机使用,线程?

我有一个本地类,其中有一个方法用于构建一个字符串列表,我发现当我点击这个方法(在一个1000次的for循环中)时,它通常不会返回我请求的数量.

我有一个全局变量:

string[] cachedKeys
Run Code Online (Sandbox Code Playgroud)

传递给方法的参数:

int requestedNumberToGet
Run Code Online (Sandbox Code Playgroud)

该方法看起来类似于:

List<string> keysToReturn = new List<string>();
int numberPossibleToGet = (cachedKeys.Length <= requestedNumberToGet) ? 
cachedKeys.Length : requestedNumberToGet;
Random rand = new Random();

DateTime breakoutTime = DateTime.Now.AddMilliseconds(5);

//Do we have enough to fill the request within the time? otherwise give 
//however many we currently have
while (DateTime.Now < breakoutTime
    && keysToReturn.Count < numberPossibleToGet
    && cachedKeys.Length >= numberPossibleToGet)
{
    string randomKey = cachedKeys[rand.Next(0, cachedKeys.Length)];
    if (!keysToReturn.Contains(randomKey))
        keysToReturn.Add(randomKey);
}

if (keysToReturn.Count != numberPossibleToGet)
    Debugger.Break();
Run Code Online (Sandbox Code Playgroud)

我在cachedKeys中有大约40个字符串,长度不超过15个字符.

我不是线程专家所以我实际上只是在一个循环中调用这个方法1000次并且一直在那里进行调试.

这台运行的机器是一个相当强大的桌面,所以我希望突破时间是真实的,实际上它在循环的任何一点随机断开(我已经看过20s,100s,200s,300s). …

c# performance multithreading loops list

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

在 windows / direct3d 中使用 ttf 文件中的字体

我正在使用 direct3d 9 并使用 D3DXCreateFont 创建一个字体对象,我可以用它来将文本写入屏幕。但是我想使用 TTF 文件中的字体而不是已安装的字体。有没有办法从 TTF 文件创建字体对象,而无需先将字体安装到我不想做的 Windows 中?

windows directx fonts direct3d

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

链接到Visual Studio 2005中的Python导入库

我有一个嵌入了Python的C++应用程序.我正在使用Visual Studio 2005构建.当我尝试链接到python26.lib时,我得到了许多未解析的符号,所有符号都以"__imp"开头:

错误LNK2019:函数_main中引用的未解析的外部符号__imp__Py_Initialize

python26.lib是一个导入库(由Python 2.6安装程序安装).我该怎么做才能解决这些问题?它们确实存在于导入库中(dumpbin/all显示它们).谢谢.

python import linker visual-studio

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

你怎么得到git总是从特定的分支拉?

我不是一个git master,但是我已经和它一起工作了一段时间,有几个不同的项目.在每个项目中,我总是从那时git clone [repository]起,总是可以git pull,只要我没有突出的变化,当然.

最近,我不得不恢复到以前的分支,并且这样做了git checkout 4f82a29.当我再次准备好拉,我发现我必须将我的分支设置回主人.现在,我不能使用笔直git pull,而是必须指定git pull origin master,这很烦人,并告诉我,我不完全了解发生了什么.

更改了哪些不允许我在git pull没有指定原始主文件的情况下执行直接操作,以及如何将其更改回来?

更新:

-bash-3.1$ cat config
[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[branch "master"]
[remote "origin"]
    url = git@github.com:user/project.git
    fetch = refs/heads/*:refs/remotes/origin/*
Run Code Online (Sandbox Code Playgroud)

更新2:要清楚,我明白我的原始方法可能不正确,但我需要修复此回购,以便我可以git pull再次使用.目前,git pull导致:

-bash-3.1$ git pull
You asked me to pull without telling me which branch you
want to merge with, and 'branch.master.merge' in
your …
Run Code Online (Sandbox Code Playgroud)

git version-control

479
推荐指数
7
解决办法
22万
查看次数

什么是蓝牙的范围,它是严格1:1?

有谁知道你可以从iPhone蓝牙获得什么样的范围?此外,连接是否严格一对一?我知道你可以从多个对等体中选择连接但是一旦建立连接,你似乎只能在一个对等体之间传输数据?基本上,是否有可能创造某种"多人"体验?

iphone bluetooth

16
推荐指数
3
解决办法
7万
查看次数

实体框架 - 将对象作为集合获取

是否可以从实体对象中获取集合(Dictionary)?我需要这个,以便将对象的部分属性传递给需要IDictionary的函数.

entity-framework

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