我正在动态地在我的网页上列出一些控件,要么我正在添加带有Label的换行符.
Label newLine = new Label();newLine.Text = "<br/>"; myPanel.Controls.Add(newLine);
Run Code Online (Sandbox Code Playgroud)
我怎么能以不同的方式做到这一点?
CSharpSamples.zip中Dynamic Linq附带的帮助文件未显示使用contains或like的任何示例.
这样做有什么简单的解决方法吗?即哪里(像@col这样的col)不起作用.
我的IM应用程序必须支持表情符号.它们是GIF并具有文本表示,如果用户选择其中一个,则在输入框中使用这些表示.但是我想在它们发送后将它们显示为图像.目前我的自定义数组适配器在一行的TextView中显示已发送的消息.
根据文本表示的出现动态显示图像的正确方法是什么?我是否必须搜索表情符号文本,如果找到它,则从布局中删除TextView(relativeLayout最适合?)并添加带有IM开头的TextView,带有表情符号的ImageView和另一个TextView.如果同时发送更多表情符号,它可能会很混乱.
有更简单,更合乎逻辑的方式吗?
什么是c ++中对象的动态初始化?
请用一个简单的例子来解释......
我正在创建一个WPF表单.其中一个要求是它具有基于扇区的布局,以便可以将控件明确地放置在扇区/单元之一中.
我在下面创建了一个tic-tac-toe示例来表达我的问题:
有两种类型和一种基本类型:
public class XMoveViewModel : MoveViewModel
{
}
public class OMoveViewModel : MoveViewModel
{
}
public class MoveViewModel
{
public int Row { get; set; }
public int Column { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
表单的DataContext设置为以下实例:
public class MainViewModel : ViewModelBase
{
public MainViewModel()
{
Moves = new ObservableCollection<MoveViewModel>()
{
new XMoveViewModel() { Row = 0, Column = 0 },
new OMoveViewModel() { Row = 1, Column = 0 },
new XMoveViewModel() { Row = 1, Column = 1 …Run Code Online (Sandbox Code Playgroud) 基本方案是:我需要从数据库加载文本,然后将该文本转换为Elixir模块(或Erlang模块),然后调用它.该文本实际上与模块文件相同.所以这是一种热代码加载形式.我想编译"文件",然后加载生成的模块,然后调用它.后来我会把它卸下来.唯一的区别是代码存在于数据库中而不是磁盘上的文件中.(当我正在编写将加载它的代码时,它不存在.)
我知道Erlang支持热代码加载,但似乎专注于编译磁盘上的文件然后加载梁.我希望这是一个更动态的过程,我不会替换正在运行的代码,而是加载代码,然后运行它,然后卸载它.
Elixir中有几个工具用于在运行时评估代码.我正在试图弄清楚如何使用它们,文档有点稀疏.
Code.compile_string(string, "nofile")
Run Code Online (Sandbox Code Playgroud)
"返回元组列表,其中第一个元素是模块名称,第二个元素是其二进制元素".所以,现在我有了模块名称和它们的二进制文件,但我不知道如何将二进制文件加载到运行时并调用它们.我该怎么办?(我可以看到代码库中没有这个功能.)
可能我可以使用Erlang函数:
:code.load_binary(Module, Filename, Binary) ->
{module, Module} | {error, What}
Run Code Online (Sandbox Code Playgroud)
好的,所以这会返回一个带有原子"module"然后是Module的元组.如果从数据库加载的字符串定义了一个名为"Paris"的模块,那么我的代码将如何执行
paris.handler([parameters])
Run Code Online (Sandbox Code Playgroud)
既然我事先不知道会有一个名为巴黎的模块?我可以知道,通过让字符串"paris"也存储在数据库中这是名称,但是有没有办法调用模块,使用字符串作为你正在调用的模块的名称?
还有:
eval(string, binding // [], opts // [])
Run Code Online (Sandbox Code Playgroud)
其中评估字符串的内容.这个字符串可以是模块的整个定义吗?看来不是.我希望能够编写这样的代码,使其具有多个相互调用的函数 - 例如一个完整的小程序,具有预定义的入口点(可能是主要的,例如as"DynamicModule.handle([parameter,list])"
然后是EEx模块,它具有:
compile_string(source, options // [])
Run Code Online (Sandbox Code Playgroud)
这对做模板很有用.但最终它似乎只适用于有一个字符串并且你已经嵌入了Elixir代码的用例.它在选项的上下文中计算字符串并生成一个字符串.我正在寻求将字符串编译成一个或多个我可以调用的函数.(如果我只能创建一个很好的函数,那么该函数可以模式匹配或切换到执行其他所需的事情....)
我知道这是非常规的,但我有理由这样做,他们是好的.我正在寻找有关如何做到这一点的建议,但不需要被告知"不要那样做".看起来它应该是可能的,Erlang支持热代码加载,而Elixir非常动态,但我只是不知道语法或正确的函数.我将密切关注这个问题.提前致谢!
编辑基于第一个答案:
谢谢你的答案,这是一个很好的进展.正如Yuri所示,eval可以定义一个模块,正如José指出的那样,我可以使用代码eval来处理带有绑定的小部分代码.
被评估的代码(无论是否变成模块)都会相当复杂.它的开发最好是将其分解为函数并调用这些函数.
为了帮助,让我提供一些背景信息.假设我正在构建一个Web框架.从数据库加载的代码是特定URI的处理程序.因此,当HTTP调用进来时,我可能会加载example.com/blog/的代码.此页面可能涉及几个不同的内容,例如注释,最近发布的列表等.
由于许多人同时访问该页面,我正在产生一个处理每个页面视图的过程.因此,对于不同的请求,有很多时候可以同时评估该代码.
模块解决方案允许人们将代码分解为页面不同部分的函数(例如:帖子列表,注释等).我会在启动时加载模块一次,让许多进程产生该调用进去.该模块是全球性的,对吗?
如果已经定义了模块会发生什么?EG:模块更改时,有进程已调用该模块.
在iex中,我能够重新定义已经定义的模块:
iex(20)> Code.eval "defmodule A do\ndef a do\n5\nend\nend"
nofile:1: redefining module A
Run Code Online (Sandbox Code Playgroud)
如果我在运行时将模块重新定义到当前调用该模块的所有进程,会发生什么?此外,在正常操作中,这种重新定义是否会在iex之外工作?
假设重新定义模块会有问题,并且全局模块可能遇到命名空间冲突的问题,我研究了使用eval来定义函数.
如果我只能从数据库定义函数的代码,那么这些函数都在任何进程的范围内,并且我们没有全局冲突的可能性.
但是,这似乎不起作用:
iex(31)> q = "f = function do
...(31)> x, y when x > 0 -> x+y
...(31)> x, y -> …Run Code Online (Sandbox Code Playgroud) 我正在使用vuejs,我想知道如何控制输入(必要时添加禁用属性).有没有办法在vuejs中添加动态属性?在我的Textfield组件下面:
<template>
<input type="text" placeholder="{{ placeholder }}" v-model="value">
</template>
<script>
export default {
props: {
disabled: {type: Boolean, default: false},
placeholder: {type: String, default: ""},
value: {twoWay: true, default: ""}
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
用法:
<textfield placeholder="Name" value.sync="el.name" :disabled="true"></textfield>
Run Code Online (Sandbox Code Playgroud) 在c#4.0中,动态方法参数是否可能,如下面的代码?
public string MakeItQuack(dynamic duck)
{
string quack = duck.Quack();
return quack;
}
Run Code Online (Sandbox Code Playgroud)
我在C#4.0中有很多很酷的动态关键字示例,但不像上面那样.这个问题当然受到python如何工作的启发.
今天在研究C#动态时,有些东西让我感到惊讶(我从未使用过它们,但最近我一直在试验Nancy web框架).我发现我不能这样做:
dynamic expando = new ExpandoObject();
expando.name = "John";
Console.WriteLine(expando["name"]);
Run Code Online (Sandbox Code Playgroud)
最后一行抛出异常:
无法将[]索引应用于"System.Dynamic.ExpandoObject"类型的表达式
我理解错误信息,但我不明白为什么会这样.我查看了ExpandoObject的文档,它显式实现IDictionary<,>,因此有一个this.[index]方法(MSDN).为什么我不能打电话给它?
当然,没有什么可以阻止我ExpandoObject手动向下翻译到字典然后索引到它,但这种方式无视这一点; 它也没有解释Expando如何能够隐藏其中一个接口的方法.
这里发生了什么?
dynamic ×10
c# ×2
object ×2
.net ×1
android ×1
asp.net ×1
c#-4.0 ×1
c++ ×1
elixir ×1
emoticons ×1
erlang ×1
grid ×1
imageview ×1
itemscontrol ×1
javascript ×1
linq ×1
linq-to-sql ×1
methods ×1
module ×1
newline ×1
parameters ×1
var ×1
vue.js ×1
wpf ×1
wpf-controls ×1