这是因为 \ d+
模式仅允许数字序列。如果您想要类似sl的序列,则可以使用:
from django.conf.urls import url
from django.contrib import admin
from olvapp import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^register/(?P<pk>[-\w]+)',views.guaform,name='custform'),
]
如果要使用 async
,则需要将事件处理程序更改为 async
,因此您可以使用等待
,请参阅以下内容:
1。将事件处理程序更改为 async void
, async void
在事件处理程序方法上是可以接受的,您应该尝试使用 async Task
代替 async void
在大多数其他情况下,因此将方法签名更改为以下内容:
private async void btnOK_Click(object sender, EventArgs e)
{
if (txtItemURL.Text.StartsWith("https://steamcommunity.com/market/listings/730/") == true)
{
Helpers.Helper.BuildURL(txtItemURL.Text);
//here we use await to await the task
SteamMarketItem SMI = await Helpers.Helper.GetItemDetails();
lblPrice.Text = SMI.LowestPrice.ToString() + "$";
pbItemImage.ImageLocation = SMI.ImagePath;
Helpers.Helper.Kontrollar_BerpaEt();
}
else
{
Helpers.Helper.Kontrollar_SifirlaYanlisDaxilEdilib();
}
}
2。您不需要使用 task.run < /code>,
httpclient
公开 async
方法,您可以使方法 async
,也可以调用。result
ysync
方法的块通常不是一个好主意,您应该制作封闭方法 async
,因此您可以使用等待
:
//Change signature to async and return a Task<T>
public async static Task<SteamMarketItem> GetItemDetails()
{
WinForms.Control.CheckForIllegalCrossThreadCalls = false;
//what is marketItem?? Where is it declared?
try
{
using (HttpClient client = new HttpClient())
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
/* Get item info: */
var ResultFromEndpoint1 = await client.GetAsync(ReadyEndpointURL1);
var Json1 = await ResultFromEndpoint1.Content.ReadAsStringAsync();
dynamic item = serializer.Deserialize<object>(Json1);
marketItem.LowestPrice = float.Parse(((string)item["lowest_price"]).Replace("$", "").Replace(".", ","));
/* Get item image: */
var ResultFromEndpoint2 = await client.GetAsync(ReadyEndPointURL2);
var Json2 = await ResultFromEndpoint2.Content.ReadAsStringAsync();
var html = ((dynamic)serializer.Deserialize<object>(Json2))["results_html"];
HtmlDocument htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(html);
marketItem.ImagePath = htmlDoc.DocumentNode.SelectSingleNode("//img[@class='market_listing_item_img']").Attributes["src"].Value + ".png";
Kontrollar_BerpaEt();
}
}
catch
{
Kontrollar_SifirlaYanlisDaxilEdilib();
}
//what is marketItem?? Where is it declared?
return marketItem;
}
您可以使用MAP TILE API在背景中显示映射,如此示例所示: https://demo.support.here.com/examples/v3.1/simple_routing
(function(){
/*
作者
(c)在这里2019年
*/
var mapContainer = document.getElementById('mapContainer');
// check if the site was loaded via secure connection
var secure = (location.protocol === 'https:') ? true : false;
var platform = new H.service.Platform({
useHTTPS: secure,
apikey: api_key
}),
defaultLayers = platform.createDefaultLayers(),
router = platform.getRoutingService(),
map = new H.Map(mapContainer, defaultLayers.vector.normal.map,
{
center: center,
zoom: zoom,
pixelRatio: window.devicePixelRatio || 1
}
);
// Do not draw under control panel
map.getViewPort().setPadding(0, 0, 0, $('.ctrl-panel').width());
// add behavior control
new H.mapevents.Behavior(new H.mapevents.MapEvents(map));
// Enable the default UI
var ui = H.ui.UI.createDefault(map, defaultLayers);
window.addEventListener('resize', function() { map.getViewPort().resize(); });
function calculateRoute()
{
var calculateRouteParams = {
'waypoint0' : '52.516222,13.388900',
'waypoint1' : '52.517175,13.395129',
'mode': 'fastest;car;traffic:disabled',
'representation': 'display'
},
onResult = function(result) {
var lineString = new H.geo.LineString(),
routeShape = result.response.route[0].shape,
polyline;
routeShape.forEach(function(point) {
var parts = point.split(',');
lineString.pushLatLngAlt(parts[0], parts[1]);
});
var polyline = new H.map.Polyline(lineString,
{
style:
{
lineWidth: 10,
strokeColor: "rgba(0, 128, 0, 0.7)"
}
});
map.addObject(polyline);
map.getViewModel().setLookAtData({
tilt: 45,
bounds: polyline.getBoundingBox()
});
},
onError = function(error) {
console.log(error);
}
router.calculateRoute(calculateRouteParams, onResult, onError);
}
var displayReady = function(e)
{
map.removeEventListener("mapviewchangeend", displayReady);
calculateRoute();
};
map.addEventListener("mapviewchangeend", displayReady);
})
您可以使用JSON解码器在字符串切片中解码值
var arr []string
err := json.NewDecoder(req.Body).Decode(&arr)
if err != nil {
fmt.Fprintf(w,fmt.Sprintf("Error:%+v",err))
return
}
fmt.Println(arr)
您无法在不包含在FormGroup中的情况下使用FormGroupName(请参阅控制台中的错误)。
声明一个变量
subSubForm:FormGroup
因此,在ngoninit使用
ngOnInit() {
...
this.subSubForm=this.fgd.form.get('childForm') as FormGroup
...
}
和.html中
<!--see that use [FormGroup] -->
<div [formGroup]="subSubForm">
<p>Child</p>
<input type="text" formControlName="childInput" />
</div>
您可以做一些简单的事情:
match(u:User{id:'regular'})-[*0..]->()-[:can_edit]->(r:Resource)
这将确保资源为[:can_edit]之前的最后一个关系
回答
答案---&gt;我忘了创建一个适配器类的实例
解决方案-----&gt;
adapterRecVHomeFrag adapter;
添加此行以创建适配器类类型的变量。
我检查了您的代码。有一些小错误。检查我的示例并评论您是否有解决问题的解决方案,谢谢。
Public Class Form1
Private Sub TxtRemise_TextChanged(sender As Object, e As EventArgs) Handles TxtRemise.TextChanged
Dim TotalTTc As Decimal
TotalTTc = CDec(TotalHT.Text) + CDec(TXTMontantTva.Text)
TxtTTC.Clear()
TxtTTC.Text = (TotalTTc - CDec(TxtRemise.Text)).ToString
End Sub
End Class
仅用于寄存器:
如果您在不是“管理员”(计算机的主要用户)的用户中安装,则可能会发生这种情况。
为了澄清,它是“管理员”用户,而不是管理员组中的用户。
与管理员一起运行,我在有问题的计算机上取得了成功。
tl; dr答案:
您可以将其视为另一个封装级别 - 在受保护和 private 之间:您不能从儿童班上称呼它,但是您可以覆盖它。
实现模板方法设计模式时,这很有用。您可以使用受保护的,但是私人与 Virtual 一起可以被认为是更好的选择,因为封装更好。
TL;DR answer:
You can treat it like another level of encapsulation - somewhere between protected and private: you can't call it from child class, but you can override it.
It is useful when implementing Template Method design pattern. You could use protected, but private together with virtual may be considered as better choice, because of better encapsulation.
私人纯虚拟功能的重点是什么?