Откуда вы знаете, type
является reference type
или value type
. Например, согласно статье about.com (http://visualbasic.about.com/b/2005/10/29/when-is-a-copy-not-a-copy.htm) integer type
всегда является value type
, а array type
может быть value type
или reference type
. В том же примечании, при копировании cookiecontainer
необходимо использовать метод clone()
или работает =
? То есть будет =
создать копию или ссылку cookiecontainer
?Как узнать, какой тип является ссылочным типом или типом значения в Visual Studio
Примечание: Мне кажется, что, как он используется в этом коде, =
создает копию.
От: http://howtostartprogramming.com/vb-net/vb-net-tutorial-52-httpwebrequest-cookiecontainer/
Imports System.Net
Imports System.Text
Imports System.IO
Public Class Form1
Dim logincookie As CookieContainer
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim postData As String = "referer=http%3A%2F%2Fforums.zybez.net%2Findex.php%3Fapp%3Dcore%26module%3Dglobal%26section%3Dlogin&username=" & TextBox1.Text & "&password=" & TextBox2.Text & "&rememberMe=1"
Dim tempCookies As New CookieContainer
Dim encoding As New UTF8Encoding
Dim byteData As Byte() = encoding.GetBytes(postData)
Dim postReq As HttpWebRequest = DirectCast(WebRequest.Create("http://forums.zybez.net/index.php?app=core&module=global§ion=login&do=process"), HttpWebRequest)
postReq.Method = "POST"
postReq.KeepAlive = True
postReq.CookieContainer = tempCookies
postReq.ContentType = "application/x-www-form-urlencoded"
postReq.Referer = "http://forums.zybez.net/index.php?app=core&module=global§ion=login&do=process"
postReq.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.3) Gecko/20100401 Firefox/4.0 (.NET CLR 3.5.30729)"
postReq.ContentLength = byteData.Length
Dim postreqstream As Stream = postReq.GetRequestStream()
postreqstream.Write(byteData, 0, byteData.Length)
postreqstream.Close()
Dim postresponse As HttpWebResponse
postresponse = DirectCast(postReq.GetResponse(), HttpWebResponse)
tempCookies.Add(postresponse.Cookies)
logincookie = tempCookies
Dim postreqreader As New StreamReader(postresponse.GetResponseStream())
Dim thepage As String = postreqreader.ReadToEnd
RichTextBox1.Text = thepage
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim request As HttpWebRequest = DirectCast(WebRequest.Create("http://forums.zybez.net/index.php?app=core&module=usercp"), HttpWebRequest)
request.CookieContainer = logincookie
Dim response As HttpWebResponse = DirectCast(request.GetResponse(), HttpWebResponse)
Dim reader As New StreamReader(response.GetResponseStream())
Dim theusercp As String = reader.ReadToEnd
RichTextBox2.Text = theusercp
End Sub
End Class
UPDATE 1
Из MSDN (http://msdn.microsoft.com/en-us/library/t63sy5hs.aspx) все classes
являются reference types
поэтому делает cookiecontainer
reference type
.
Это может быть, однако, я ищу, чтобы сделать это в среде Visual Studio. Конечно, я мог бы написать этот код и отобразить тип в окне сообщения, но мне интересно, есть ли один лаконичный способ узнать, не записывая временный код. –
Я не понял вас - вы хотели знать, является ли это значением/ссылочным типом во время выполнения или что? – Rex
Да во время выполнения. –