小编Tig*_*ran的帖子

在Android中注册新文件类型

我想在Android上编写简单的STL(几何数据文件)查看器应用程序,但我无法识别系统的格式.我在我的应用清单文件中写的是:

<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <action android:name="android.intent.action.EDIT" />
    <action android:name="android.intent.action.PICK" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:scheme="http" />
    <data android:pathPattern=".*\\.stl" />
    <data android:mimeType="application/sla" />
    <data android:host="*" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)

但是目前我启动浏览器并下载一些示例STL文件,下载中断,我报告系统的数据文件类型未知.我没有真正的Android设备,所以只使用模拟器,为了开发我在MonoDroid上使用C#(但我不认为这是老实说的问题)

关于主题的任何想法?

先感谢您.

android file-type

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

使用LINQ过滤集合

假设我们有一个Person对象的集合

class Person 
{
     public string PersonName {get;set;}
     public string PersonAddress {get;set;}    
}
Run Code Online (Sandbox Code Playgroud)

并在代码定义集合中的某处

List<Person> pesonsList = new List<Person>();
Run Code Online (Sandbox Code Playgroud)

我们需要一个过滤器,需要过滤集合并将结果返回给最终用户.假设我们有一个Filter类型对象的集合

class Filter 
{
    public string FieldName {get;set;}
    public string FilterString {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

在我们的代码中的某个地方

List<Filter> userFilters = new List<Filter>(); 
Run Code Online (Sandbox Code Playgroud)

因此,我们需要通过userFilters集合中定义的过滤器来过滤personsList集合的内容.凡Filter.FieldName == "PERSONNAME" || Filter.FieldName =="PersonAddress".我怎样才能以酷炫的方式使用LINQ呢?像switch这样的解决方案,或者我认为,personList上的扩展方法可以从FiledName确定要查看的Person的属性.别的什么?有点棘手:)谢谢.

.net c# linq

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

为什么这个编译错误

为什么我写

void Main()
{
      string value = @"C:\";
      if (!string.IsNullOrEmpty(value))  { 
            string sDirectory = Path.GetDirectoryName(value);
      }

}
Run Code Online (Sandbox Code Playgroud)

它汇编.

如果我写的话

void Main()
{
      string value = @"C:\";
      if (!string.IsNullOrEmpty(value))
        string sDirectory = Path.GetDirectoryName(value);


}
Run Code Online (Sandbox Code Playgroud)

不是吗?

很明显,从纯粹的功能观点来看,第二个例子中变量的声明是无用的,但为什么它在第一个例子中神奇地变得有用,所以呢?

两个示例生成的IL代码完全相同.

IL_0000:  ldstr       "C:\"
IL_0005:  stloc.0     
IL_0006:  ldloc.0     
IL_0007:  call        System.String.IsNullOrEmpty
IL_000C:  brtrue.s    IL_0015
IL_000E:  ldloc.0     
IL_000F:  call        System.IO.Path.GetDirectoryName
Run Code Online (Sandbox Code Playgroud)

编辑:

忘了IL为第二种情况生成代码(所以不能编译的情况),这就足够了string sDirectory =

c# compilation

9
推荐指数
3
解决办法
360
查看次数

处理LINQtoSQL中的SQLite Autoincrement列映射

我有下属实体

    [Table(Name = "Users")]
    public sealed class UserDB
    {
        private Int64 _id = -1;
        private string _username = string.Empty;

        public UserDB() { }

        public UserDB(RepositoryInfo repoInfo)
        {
            UserName = repoInfo.Account;
        }

        [Column(Name = "ID", Storage = "_id",  IsDbGenerated = true, IsPrimaryKey = true, UpdateCheck = UpdateCheck.Never)]
        public Int64 ID { get { return _id; } set { _id = value; } }

        [Column(Name = "UserName", DbType="nvarchar(50)", Storage = "_username")]
        public string UserName { get { return _username; } set { …
Run Code Online (Sandbox Code Playgroud)

c# sqlite orm

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

C# - 从基本方法完成返回

我有一个void Action()在派生类中重写的虚基本方法.

行动的第一步是打电话base.Action().如果基本方法中出现某种情况,我不希望处理其余的派生方法.

我想知道是否有一个关键字或设计模式,允许我从基本方法退出派生方法.

目前我正在考虑将void更改为bool并将其用作流控制,但我想知道是否有任何其他设计模式我可以使用.

c# methods inheritance derived base

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

使用JavaScript从Dropbox下载文件

我有

我有一个网站试图向客户提供服务,以便从Dropbox下载文件.为了简化开发,我使用Dropbox选择器.为此,我启用了我希望下载的域名,并将<script>Dropbox本身(带有相应的data-app-key)建议的标记包含到我的HTML页面中.一切都很美好.

问题

现在我需要下载用户选择的文件. Dropbox选择器似乎没有为此提供任何功能,它只是检索有关文件的信息.在我的情况下这是一个direct link,下载文件.

要下载该文件,在我看来,我需要使用Dropbox.Client在另一个Dropbox javascript库中定义的//cdnjs.cloudflare.com/ajax/libs/dropbox.js/0.9.1/dropbox.min.js

所以使用该libarry我运行这样的代码:

//OPTIONS FOR DROPBOX CHOOSER
var options = {
        linkType: "direct",

        // THIS FUNCITON RUNS WHEN USER SELECTS SOMETHING
        // FROM DOPBOX_CHOOSER
        success: function (files) {

            // DEFINE APP KET FOR DROPBOX_CLIENT (KEY, SECRET...), WHICH I GET
            // BY CREATING NEW "CORE API" TYPE:Full Dropbox APPLICATION ON 
            // DROPBOX APP CONSOLE 
            var appKey = { key: 'APP KEY', secret: 'CLIENT …
Run Code Online (Sandbox Code Playgroud)

javascript dropbox dropbox-api

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

用于矢量化的随机读取的结构阵列(AoS)与阵列结构(SoA)

我的问题是关于本书中的以下短语:

不幸的是,SoA表格并非在所有情况下都是理想的.对于随机或不连贯的情况,收集用于访问数据,SoA表单可能导致额外的不需要的数据被读入缓存,从而降低性能.在这种情况下,使用AoS表单将导致更小的工作集和更高的性能.但是,通常,如果要对计算进行矢量化,则优选SoA形式.

猜测 AoS可能导致更好性能的原因是,当同一结构中的不同或更好的所有字段都参与单个矢量化运行时.

示例(只是概念,没有具体或工作代码):

/*Note that the types of data I maintain the same intentionally, 
  to simplify discussion*/
struct Data {
     float mean; 
     float distribution[10]
}
Run Code Online (Sandbox Code Playgroud)

并定义从某些数据源中随机获得的数组

Data aos[5];

现在,如果在矢量化循环期间我做了类似的事情:

float* dataPtr =  &(aos[0].mean);

#pragma simd
for(int i=0; i< 60; i++)
{
   const float mean = (*dataPtr);
   /*do something with mean */

   dataPtr++;

   /*do something with distribution */
}
Run Code Online (Sandbox Code Playgroud)

这将导致更好的性能,因为在SoA的情况下,我将在高速缓存行上推送我在计算期间可能实际需要的更多信息.有些CPU预缓存?在AoS的情况下,相反会产生更好的性能.

我的假设是正确的,还是还有别的?

c++ parallel-processing vectorization cpu-cache

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

该字符串未被识别为有效的DateTime。从索引0开始有一个未知词

我有以下C#在尝试将字符串解析为datetime时出现上述错误。

DateTime backupdate = System.Convert.ToDateTime(imageflowlabel.Text);   
DateTime currentdate = System.DateTime.Now.AddHours(-2);    
int result = currentdate.CompareTo(backupdate);
Run Code Online (Sandbox Code Playgroud)

imageflowlable.text 看起来像这样 2012-04-15 15:23:34:123

关于如何转换此的任何想法?

谢谢

c# datetime

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

Roslyn怀疑SyntaxTree的构造

放弃

我很确定我错过了一些明显的东西,但即使在阅读官方文档后我也不清楚Roslyn如何创建语法树.

请考虑以下简单代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace aopsample
{

    class UsbReadWriter
    {

        public bool ReadFromUsb()
        {
            return true;
        }

        public virtual bool WriteToUsb()
        {
            return true;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到了一个SyntaxTree代码,并制作这样的东西,非常粗糙和简单,但我只需要理解.

 

  string[]lines =  System.IO.File.ReadAllLines(filename);      
  string tocompile = string.Join(string.Empty, lines);  

  SyntaxNode root = tree.GetRoot(new CancellationToken());
  foreach (SyntaxNode sn in root.ChildNodes())
  {
      if (sn.Kind == SyntaxKind.NamespaceDeclaration)
      {
         //I get a namespace, so it's Child node just will be class
         foreach (SyntaxNode sname in sn.ChildNodes()) …
Run Code Online (Sandbox Code Playgroud)

.net c# roslyn

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

从主窗体中打开现有表单

我设计了两种形式:Form1Form2.Form1是主要形式.有一个按钮Form1,如果我点击按钮,然后Form2会弹出.我想做点什么Form2.

// click button in Form1.
private void button1_Click(object sender, EventArgs e)
    {
        Form form2= new Form();
        form2.ShowDialog();
    }
Run Code Online (Sandbox Code Playgroud)

但这Form2是一种新形式而不是现有形式.

这是错误的.

怎么样?谢谢.

c# winforms

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