问题列表 - 第16544页

当键是字符串并且字符串包含空格时,搜索HashTable会变慢

今天我和其他开发人员讨论了第三方库中的限制,我们不能在字符串中使用空格.原因是字符串在.NET Hashtable中用作键,并且当键包含空格时,搜索.NET HashTable的速度明显变慢.

既然我懒得写一个测试,但我仍然想知道为什么会这样,我在这里问我的问题:

当使用的字符串包含空格时,搜索Hashtable会变慢吗?

我不希望这样,因为在执行搜索之前,使用String.GetHashCode()获取散列,然后使用该散列来定位表中的条目.

谢谢!

.net string hashtable

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

动态代码生成

我目前正在开发一个应用程序,您可以使用它创建"程序"而无需编写源代码,只需单击并播放即可.

现在的问题是如何从我的数据模型生成可执行程序.有很多可能性,但我不确定哪一个对我最好.我需要生成具有类和命名空间的程序集以及可以作为应用程序一部分的所有内容.

  1. CodeDOM类:我听说过这个类的很多限制和错误.我需要在方法参数和返回值上创建属性.这支持吗?

  2. 以编程方式创建C#源代码然后在其上调用CompileAssemblyFromFile:这可以工作,因为我可以生成我想要的任何代码,C#支持大多数CLR功能.但这不会很慢吗?

  3. 使用反射ILGenerator类:我认为我可以生成所有可能的.NET代码.但我认为这比其他方法更复杂,更容易出错?

  4. 有其他可能的解决方案吗?

编辑:该工具是开发应用程序的一般工具,它不限于特定的域.我不知道它是否可以被视为可视化编程语言.用户可以创建类,方法,方法调用,各种表达式.它不会非常有限,因为您应该能够完成实际编程语言中允许的大多数事情.目前,用户仍然必须将很多东西写成文本,但最终的目标是,几乎所有东西都可以一起点击.

.net c# reflection code-generation codedom

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

fpdf多单元问题

我们如何以相同的高度显示具有不同内容量的fpdf多单元

fpdf

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

WPF中的Grid Splitter问题

我想要一个像VS 2008这样的布局.我想要两列和第二列再分成两列.

我在下面提到的xaml中做到了这一点,但是GridSplitter垂直不可见(分割两列).

我希望这两个GridSplitters都可以调整大小.一个GridSplitter调整左手窗格和右手窗格的GridSplitter大小,另一个调整子网格的顶部窗格和右窗格的大小.

第二个GridSplitter是通过这个XAML,但我无法生成拆分右手窗格和左手窗格的XAML代码..请帮助!!

<Window x:Class="AlarmUI_2.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Window1" Height="300" Width="300">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
        <StackPanel Background="Aqua" Grid.Column="0" >
            <TextBlock FontSize="35" Foreground="#58290A" 
                       TextWrapping="Wrap">Left Hand Side</TextBlock>
        </StackPanel>
        <GridSplitter Grid.Column="0" ResizeDirection="Auto" 
                      Grid.RowSpan="1" 
                      HorizontalAlignment="Stretch" 
                      VerticalAlignment="Center"/>
        <Grid Grid.Column="1">
            <Grid.RowDefinitions>            
                <RowDefinition Height="*" />
                <RowDefinition Height="*" />
            </Grid.RowDefinitions>
            <ListBox Grid.Row="0" Background="Red">
                <ListBoxItem>Hello</ListBoxItem>
                <ListBoxItem>World</ListBoxItem>
            </ListBox>
            <GridSplitter Grid.Row="1" Height="5" Background="Gray"
                          VerticalAlignment="Top" HorizontalAlignment="Stretch" />
            <ListBox Grid.Row="1" Background="Violet" Margin="0,5,0,0">
                <ListBoxItem>Hello</ListBoxItem>
                <ListBoxItem>World</ListBoxItem>
            </ListBox>
        </Grid>
    </Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)

wpf wpf-controls gridsplitter

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

编组从C++到C#的结构数组?

在我的C#代码中,我正在尝试从遗留C++ DLL中获取结构数组(代码我无法更改).

在该C++代码中,结构定义如下:

struct MyStruct
{
    char* id;
    char* description;
};
Run Code Online (Sandbox Code Playgroud)

我正在调用的方法(get_my_structures)返回一个指向MyStruct结构数组的指针:

MyStruct* get_my_structures()
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

还有另一种方法可以返回结构的数量,因此我知道返回了多少结构.

在我的C#代码中,我已经定义了MyStruct:

[StructLayout(LayoutKind.Sequential)]  
public class MyStruct
{
  [MarshalAsAttribute(UnmanagedType.LPStr)]    // <-- also tried without this
  private string _id;
  [MarshalAsAttribute(UnmanagedType.LPStr)]
  private string _description;
}
Run Code Online (Sandbox Code Playgroud)

互操作签名如下所示:

[DllImport("legacy.dll", EntryPoint="get_my_structures")]
public static extern IntPtr GetMyStructures();
Run Code Online (Sandbox Code Playgroud)

最后,获取MyStruct结构数组的代码如下所示:

int structuresCount = ...;
IntPtr myStructs = GetMyStructures();
int structSize = Marshal.SizeOf(typeof(MyStruct));    // <- returns 8 in my case
for (int i = 0; i < structuresCount; i++)
{
    IntPtr data = …
Run Code Online (Sandbox Code Playgroud)

.net c# c++ interop marshalling

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

Microsoft替代S#arp架构和底层技术

正如另一篇文章中所述, S#arp Architecture将ASP.NET MVC与其他框架和工具结合在一起

  • NHibernate 2.0.1
  • NHibernate.Validator
  • 流利的NHibernate
  • 温莎城堡
  • 犀牛嘲笑

我知道它不是一个框架,而是更多的一组最佳实践,支持DDD并在流程的每个阶段鼓励TDD.

但是,S#arp所基于的所有工具和框架都是第三方产品,受社区支持.尽管我既不质疑这些产品的质量,也不质疑支持它们的人的承诺,但看看微软是否会提供这种方法的替代方案将会很有趣.

据我所知,EF v4.0将能够涵盖其先前版本的大多数缺点,并且MVC将更新到其下一版本,但仍然远不是S#arp及其组件提供的全面解决方案.

那么,微软对S#arp架构的回答呢?

c# s#arp-architecture

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

使用Java Mail下载附件

现在我已经下载了所有消息,并将它们存储到

Message[] temp;
Run Code Online (Sandbox Code Playgroud)

如何获取每条消息的附件列表

List<File> attachments;
Run Code Online (Sandbox Code Playgroud)

注意:请不要使用第三方库,只需JavaMail.

java attachment jakarta-mail

95
推荐指数
4
解决办法
7万
查看次数

C#+ =(加上等于)(加法分配)工作非常慢,当字符串太长时?

我有一个for循环,我做的是这个.

forloop ( loop 7000 times)
{
x += 2000_char_long_string;
}
Run Code Online (Sandbox Code Playgroud)

代码在这个forloop中持续很长时间,可能超过1分钟.我怎么解决这个问题?

谢谢.

c# string performance assignment-operator

8
推荐指数
2
解决办法
7296
查看次数

使用DAO模式的优缺点

正如我在标题中提到的,我很想知道你(经验丰富的开发人员)对DAO模式的使用的看法,特别是在Web应用程序中.你发现了什么样的优势以及它的使用带来了什么后果?

java sql dao web-applications architectural-patterns

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

在Javascript中使用"this"和"prototype"之间有区别吗?

以下两个代码之间是否存在差异,我认为不是.

function Agent(bIsSecret)
{
    if(bIsSecret)
        this.isSecret=true;

    this.isActive = true;
    this.isMale = false;
}
Run Code Online (Sandbox Code Playgroud)

function Agent(bIsSecret)
{
    if(bIsSecret)
        this.isSecret=true;
}

Agent.prototype.isActive = true;    
Agent.prototype.isMale = true;
Run Code Online (Sandbox Code Playgroud)

javascript prototype this keyword

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