我想在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#(但我不认为这是老实说的问题)
关于主题的任何想法?
先感谢您.
假设我们有一个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的属性.别的什么?有点棘手:)谢谢.
为什么我写
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 =
我有下属实体
[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) 我有一个void Action()
在派生类中重写的虚基本方法.
行动的第一步是打电话base.Action()
.如果基本方法中出现某种情况,我不希望处理其余的派生方法.
我想知道是否有一个关键字或设计模式,允许我从基本方法退出派生方法.
目前我正在考虑将void更改为bool并将其用作流控制,但我想知道是否有任何其他设计模式我可以使用.
我有一个网站试图向客户提供服务,以便从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) 我的问题是关于本书中的以下短语:
不幸的是,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#在尝试将字符串解析为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
关于如何转换此的任何想法?
谢谢
我很确定我错过了一些明显的东西,但即使在阅读官方文档后我也不清楚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) 我设计了两种形式:Form1
和Form2
.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# ×7
.net ×2
android ×1
base ×1
c++ ×1
compilation ×1
cpu-cache ×1
datetime ×1
derived ×1
dropbox ×1
dropbox-api ×1
file-type ×1
inheritance ×1
javascript ×1
linq ×1
methods ×1
orm ×1
roslyn ×1
sqlite ×1
winforms ×1