小编Dan*_*zey的帖子

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

在C#中调整窗口大小时如何保持对象到位

当窗口调整大小时,如何将窗口对象(按钮,标签等)保持在中心?

目前,我在Windows窗体中有3个按钮.当我最大化窗口时,按钮停留在窗口的左上部分.我希望它们在窗口未最大化时处于中心位置.

有帮助吗?

c# resize window winforms

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

如何获得父游戏对象的大小?

我有三个儿童游戏对象(如下图所示,红色,粉红色蓝色).他们是父游戏对象Green的孩子.

我不知道,如何计算Parent(Green)GameObject的大小?

我在运行时使用以下代码创建所有这些游戏对象:

GameObject CreatePattern(int difficultyLevel)    
    {    
        GameObject gameObjectTemp = new GameObject();    
        SinglePattern singlePattern;    
        gameObjectTemp = (GameObject) Instantiate(gameObjectTemp);   


        singlePattern = freeRunDataHandler.GetSinglePatternRandom(1);    
        GameObject gameObjectSingleObject = null;    
        foreach (SingleObject singleObject in singlePattern.singleObjectList)    
        {
                gameObjectSingleObject = GetGameObjectByCategory(singleObject.catergory, singleObject.type);

            if (gameObjectSingleObject != null)    
            {    
                gameObjectSingleObject = (GameObject) Instantiate(gameObjectSingleObject, new Vector3(singleObject.positionX, singleObject.positionY, singleObject.positionZ), Quaternion.identity);    
                gameObjectSingleObject.transform.localScale = new Vector3(singleObject.length, 1, singleObject.width);    
                gameObjectSingleObject.transform.parent = gameObjectTemp.transform;    
            }    
        }        

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

此函数在添加所有子项后返回父(绿色)gameObject.我的父母(绿色)没有任何附加功能,甚至没有任何组件(BoxCollider,MeshFilter,MeshRenderer等).

我已经附加了BoxCollider,MeshRenderer和MeshFilter(仅供测试)并且我尝试过父母:

parent.collider.bounds.size.x  ----- > box collider
parent.renderer.bounds.size.x  ----- …
Run Code Online (Sandbox Code Playgroud)

unity-game-engine

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

什么是GC孔?

我用C#写了一个很长的TCP连接套接字服务器.我的服务器内存中出现峰值.我使用dotNet Memory Profiler(一种工具)来检测内存泄漏的位置.Memory Profiler指示私有堆很大,内存类似于下面(数字不是真实的,我要显示的是GC0和GC2的孔非常大,数据大小正常):

  Managed heaps - 1,500,000KB 
          Normal heap - 1400,000KB 
              Generation #0 - 600,000KB 
                  Data - 100,000KB 
                  "Holes" - 500,000KB 
              Generation #1 - xxKB 
                  Data - 0KB 
                  "Holes" - xKB 
              Generation #2 - xxxxxxxxxxxxxKB 
                  Data - 100,000KB 
                  "Holes" - 700,000KB 
          Large heap - 131072KB 
              Large heap - 83KB 
              Overhead/unused - 130989KB 
          Overhead - 0KB
Run Code Online (Sandbox Code Playgroud)

Howerver,什么是GC漏洞?dotNet Memory Profiler的文档确定了"漏洞":

"Holes"表示在两个分配的实例之间未使用的内存.由于垃圾收集器中的固定实例或优化,堆未完全压缩时会出现"漏洞".

我想知道的是:

  1. 什么样的两个分配实例之间出现"漏洞"?
  2. 固定了什么样的实例?
  3. 如何压缩堆?

我希望有人可以解释一下.

.net c# garbage-collection memory-leaks

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

简化LINQ表达式

我有一部分我真的不喜欢的代码,如果有可能以某种方式简化它 - 会非常好.

A a; // I want to get rid of this variable
if((a = collection.FirstOrDefault(x => x.Field == null)) != null)
{
  throw new ScriptException("{0}", a.y); //I need to access other field of the object here, that's why I had to declare a variable outside of the expression
}
Run Code Online (Sandbox Code Playgroud)

c# linq

6
推荐指数
2
解决办法
718
查看次数

如何为列表框中的项目执行datatemplate?

我有一个XML文件(见下文),可以在列表框中显示所有产品名称.我希望列表框中的每个条目都显示产品名称,后跟价格,而不仅仅是产品名称.

如何在XAML文件中执行datatemplate?谢谢.

简化的XML文件:

<Product> 
<Name>Red Chair</Name> 
<Price>29.5</Price>  
</Product>
Run Code Online (Sandbox Code Playgroud)

简化的XAML文件:

<DockPanel>      
<ListBox Name="listBox1" ItemsSource="{Binding}" Margin="10" >      
</ListBox> 
</DockPanel> 
Run Code Online (Sandbox Code Playgroud)

在我的C#文件中,我使用LINQ从XML文件中收集产品并将var产品分配给listBox1.DataContext,它工作正常.现在我只想添加价格.谢谢.

xml linq wpf xaml datatemplate

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

如何删除超过7天C#/ NET的文件夹

我想写一些代码来删除超过7天的所有DIRECTORIES.

所以:

  1. 检查目录: D:\this
  2. 如果文件夹超过7天 - >从系统中删除它.

.net c# visual-studio-2010 winforms

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

PHP:Mysql("SELECT WHERE ID NOT")

我试图从Mysql_query中排除一个'ID',但它仍然返回提到的ID.此ID为"21",但查询返回"21",这不是我想要的.我在Mysql中拼错了吗?

("SELECT * FROM `gallery` WHERE `gallery_id` NOT IN ('$notgallery')") or die (mysql_error());
Run Code Online (Sandbox Code Playgroud)


function not_gallery($pic){

$pic = $_GET['id'];
$id = explode(".", $pic);
$notgallery = $id;

$notg = mysql_query("SELECT * FROM `gallery` WHERE `gallery_id` NOT IN ('$notgallery')") or die (mysql_error());
while($not_row = mysql_fetch_assoc($notg)){
    $notgimage[] = array(
        'id' => $not_row['gallery_id'],
        'user' => $not_row['user_id'],
        'name' => $not_row['name'],
        'timestamp' => $not_row['timestamp'],
        'ext' => $not_row['ext'],
        'caption' => $not_row['caption'],

    );
}
print_r($notgimage);
}
Run Code Online (Sandbox Code Playgroud)

我print_r了查询,它仍然返回'21'我已经排除/或我认为我做了

Array ( [0] => Array ( [id] => 21 [user] => 18 …
Run Code Online (Sandbox Code Playgroud)

php mysql

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

Visual Studio 2008中的工具栏开发

最近我为visual studio开发了2个插件.我已将它们放在ToolBar中.

当我点击visual studio中工具栏中的插件时,插件工作正常.再次,当我点击插件再次使用它时,它不起作用.为了使其工作,我需要关闭视觉工作室.那么如何在不关闭视觉工作室的情况下使插件工作?

在我工作的时候,我做了几次观察.

当我使用Addins时,addin管理器(我们默认加载插件的地方)会自动检查.因此,如果我取消选中它,我可以在不关闭visual studio的情况下重用addin.

但是,如果我这样做,它将成为手动操作,并且不会提供插入工具栏的插件的目的.

那么,有没有办法自动取消选中Addin Manager中的插件,当我在Visual Studio中运行插件时会检查它?

c# visual-studio-2010

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

线程安全事件 - 这是一种"干净"的方式吗?

我偶然发现了专业库中的一些代码,并且不确定这是否是一种处理跨线程事件调用的简洁方法.

下面的代码在表单应用程序中.线程调用是从一个本身启动新线程并接收消息的类中进行的:

private void Library_StatusChanged(object sender, AbstractTestCase.StatusChangedEventArgs e)
{
    if (this.InvokeRequired)
    {
        this.lblProgress.Invoke((MethodInvoker)delegate ()
        {
            lblProgress.Text = "Current state: " + e.Step;
            lblProgress.Refresh();
        }
        );

        this.pbProgess.Invoke((MethodInvoker)delegate ()
        {
            pbProgess.Value = e.Percentage;
            pbProgess.Refresh();
        });

        this.lstStatus.Invoke((MethodInvoker)delegate ()
        {
            lstStatus.Items.Add("    " + e.Step);
            lstStatus.Refresh();

        });

        this.Invoke((MethodInvoker)delegate ()
        {
            this.Refresh();
        });
    }
    else
    {
        lblProgress.Text = "Current state:" + e.Step;
        lblProgress.Refresh();

        pbProgess.Value = e.Percentage;
        pbProgess.Refresh();

        lstStatus.Items.Add("    " + e.Step);
        lstStatus.Refresh();

        this.Refresh();
    }

    Application.DoEvents();
}
Run Code Online (Sandbox Code Playgroud)

这是"最先进的"吗?在我看来这有点乱??!

c# multithreading

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